프로그래머스/Lv. 0(코딩 기초 트레이닝)

[프로그래머스 코딩테스트] 간단한 식 계산하기(Java)

Sigfriede 2023. 5. 16. 01:00

  문제 설명

  문자열 binomal이 매개변수로 주어집니다. 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[] s = binomial.split(" ");
        if (s[1].equals("+")) {
            answer = Integer.parseInt(s[0]) + Integer.parseInt(s[2]);
        } else if (s[1].equals("-")) {
            answer = Integer.parseInt(s[0]) - Integer.parseInt(s[2]);
        } else {
            answer = Integer.parseInt(s[0]) * Integer.parseInt(s[2]);
        }
        return answer;
    }
}​

  String 배열을 생성합니다. split 메소드를 이용하여 binomial을 공백을 기준으로 분리하여 배열 s에 할당합니다.

  a op b 형태를 띠고 있으므로, 배열의 0번 인덱스에는 a, 1번 인덱스에는 op, 2번 인덱스에는 b가 자리하고 있을 것입니다.

  if문에서 만약 s의 1번 원소가 +와 같다면, answer에 s의 0번째 원소와 s의 2번째 원소를 더한 값을 answer에 할당합니다. 만약 s의 1번 원소가 -와 같다면, s의 0번째 원소와 s의 2번째를 뺀 값을 answer에 할당합니다. 만약 앞선 조건에 해당하지 않는다면 곱셈이라는 뜻입니다. s의 0번째 원소와 s의 s의 2번째를 곱한 값을 answer에 할당합니다.

  할당하기 전, Integer 클래스의 parseInt 메소드를 이용하여 문자열 형태의 원소를 정수형으로 변경한 후에 계산해야 올바른 결과를 도출할 수 있습니다.