본문으로 바로가기

간단한 식 계산하기

category 코딩테스트_문제풀이/프로그래머스 2023. 12. 12. 16:54

🦛 문제 설명

문자열 binomial이 매개변수로 주어집니다. binomial은 "a op b" 형태의 이항식이고 a b는 음이 아닌 정수, op는 '+', '-', '*' 중 하나입니다. 주어진 식을 계산한 정수를 return 하는 solution 함수를 작성해 주세요.

 

🦛 제한사항

  • 0 ≤ a, b ≤ 40,000
  • 0을 제외하고 a, b는 0으로 시작하지 않습니다.

 

🦛 입출력 예

 

🦛 입출력 예 설명

입출력 예 #1

  • 예제 1번의 binomial은 "43 + 12"로 이 식을 계산한 결과인 43 + 12 = 55를 return 합니다.

입출력 예 #2

  • 예제 2번의 binomial은 "0 - 7777"로 이 식을 계산한 결과인 0 - 7777 = -7777을 return 합니다.

입출력 예 #3

  • 예제 3번의 binomial은 "40000 * 40000"으로 이 식을 계산한 결과인 40000 × 40000 = 1600000000을 return 합니다.

 

🦛 문제 풀이

class Solution {
    public int solution(String binomial) {
        binomial = binomial.replace(" ", "");
        int index = 0;
        char operator = '+';
        int answer = 0;
        String[] num = new String[2];
        
        for(int i=0; i < binomial.length(); i++) {
            if(binomial.charAt(i) == '+' || binomial.charAt(i) == '-' || binomial.charAt(i) == '*') {
                index = i;
                operator = binomial.charAt(index);
            }
        }
        
        num = binomial.split("\\" + String.valueOf(operator));
        
        if(operator == '+') {
            answer = Integer.valueOf(num[0]) + Integer.valueOf(num[1]);
        } else if(operator == '-') {
            answer = Integer.valueOf(num[0]) - Integer.valueOf(num[1]);
        } else if(operator == '*') {
            answer = Integer.valueOf(num[0]) * Integer.valueOf(num[1]);
        }
        
        return answer;
    }
}