
내가 생각했을때 문제에서 원하는부분
문자열 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
}
}
위에 있는 코드를 변경한 코드
코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.