본문 바로가기
코딩테스트 연습

간단한 식 계산하기

by 신재은👩🏼‍💻 2024. 4. 12.

문제 설명

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

 

제한사항

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

 

입출력 예

binomial result
"43 + 12" 55
"0 - 7777" -7777
"40000 * 40000" 1600000000

class Solution {
    public int solution(String binomial) {
        int answer = 0;
        String[] parts = binomial.split(" ");
        int a = Integer.parseInt(parts[0]);
        char op = parts[1].charAt(0);
        int b = Integer.parseInt(parts[2]);
        
        switch(op) {
            case '+':
                return a+b;
            case '-':
                return a-b;
            case '*':
                return a*b;
            default:
                throw new IllegalArgumentException("Unknown operator: "+op);
        }
    }
}


얘는 stream 쓰는 것보다 이렇게 푸는 게 더 맞다.

 

나는

 

class Solution {

 

    public int solution(String binomial) {

        String[] cal = binomial.split(" ");

 

        if (cal[1].equals("+")) {

            return (Integer.parseInt(cal[0])) + (Integer.parseInt(cal[2]));

        } else if (cal[1].equals("-")) {

            return (Integer.parseInt(cal[0])) - (Integer.parseInt(cal[2]));

        } else {

            return (Integer.parseInt(cal[0])) * (Integer.parseInt(cal[2]));

        }

    }

}

 

이 풀이가 참 마음에 든다.

'코딩테스트 연습' 카테고리의 다른 글

가까운 1 찾기  (0) 2024.04.12
문자열 잘라서 정렬하기  (0) 2024.04.12
l로 만들기  (0) 2024.04.12
부분 문자열 이어 붙여 문자열 만들기  (0) 2024.04.11
순서 바꾸기  (0) 2024.04.11