class Solution {
public int solution(String my_string) {
String[] arrayStr = my_string.split(" ");
int result = 0;
boolean plusFlag = true;
for (int i = 0; i < arrayStr.length; i++) {
if (i % 2 == 0) {
if (plusFlag) result += Integer.parseInt(arrayStr[i]);
else result -= Integer.parseInt(arrayStr[i]);
} else {
plusFlag = arrayStr[i].equals("+");
}
}
return result;
}
}
문자열로 들어온 계산식의 결과를 반환하는 문제이다.
공백으로 연산자와 피연산자를 구분할 수 있다.
문자열을 배열로 변환하면
0번 인덱스를 시작으로 짝수번째에는 피연산자가 홀수번째에는 연산자가 오는 것을 알 수 있다.
plusFlag
라는 변수를 생성하여 +
, -
를 구분하도록 하였는데
일단 처음에는 피연산자이므로 초기값을 true로 설정하였다.
반복문을 돌며 홀수일 때는 연산자를 확인하여 plusFlag
값을 조정하고
짝수일 때는 plusFlag
값에 따라 결과에 더해주거나 빼는 방식으로 구현하였다.