프로그래머스 간단한 식 계산하기

KIMYEONGJUN·2026년 7월 13일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

내가 이 문제를 보고 생각해본 부분

solution 메서드는 문자열 binomial을 입력받아 먼저 공백 " "을 기준으로 나누어 세 부분으로 분리한다.
이 세 부분은 연산할 두 수 a, b와 연산자 op이다.
문자열로 나누어진 a와 b를 Integer.parseInt를 이용해 정수로 변환한다.
연산자 op는 문자열로 비교하며, "+"일 경우 두 수의 합, "-"일 경우 차, "*"일 경우 곱을 계산한다.
해당 연산 결과를 answer 변수에 저장한 후 반환한다.
main 메서드는 프로그램 실행 시 테스트 역할을 한다.
Main80 클래스 객체를 생성하고, solution 메서드를 호출하여 계산 결과를 표준 출력한다.
테스트 입력은 "43 + 12", "0 - 7777", "40000 * 40000"이며, 각각 기대 결과인 55, -7777, 1600000000을 출력한다.

코드로 구현

class Solution {
    public int solution(String binomial) {
        String[] parts = binomial.split(" ");
        int a = Integer.parseInt(parts[0]);
        String op = parts[1];
        int b = Integer.parseInt(parts[2]);

        int answer = 0;
        if (op.equals("+")) {
            answer = a + b;
        } else if (op.equals("-")) {
            answer = a - b;
        } else if (op.equals("*")) {
            answer = a * b;
        }
        return answer;
    }
}

프로그래머스 코드

package programmers;

// 프로그래머스 간단한 식 계산하기
public class Main80 {
    public int solution(String binomial) {
        String[] parts = binomial.split(" ");
        int a = Integer.parseInt(parts[0]);
        String op = parts[1];
        int b = Integer.parseInt(parts[2]);

        int answer = 0;
        if (op.equals("+")) {
            answer = a + b;
        } else if (op.equals("-")) {
            answer = a - b;
        } else if (op.equals("*")) {
            answer = a * b;
        }
        return answer;
    }

    public static void main(String[] args) {
        Main80 solver = new Main80();

        System.out.println(solver.solution("43 + 12"));       // 55
        System.out.println(solver.solution("0 - 7777"));       // -7777
        System.out.println(solver.solution("40000 * 40000"));  // 1600000000
    }
}

위에 있는 코드를 변경한 코드

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글