문제 설명
문자열 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 |