문제설명
덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
입출력 예
quiz | result |
---|---|
["3 - 4 = -3", "5 + 6 = 11"] | ["X", "O"] |
["19 - 6 = 13", "5 + 66 = 71", "5 - 15 = 63", "3 - 1 = 2"] | ["O", "O", "X", "O"] |
입출력 예 설명
입출력 예 #1
입출력 예 #2
풀이
정답을 저장할 배열 answer을 quiz의 길이로 초기화한다.
quiz를 반복문을 돌려, 요소인 문자열을 공백기준으로 split하여 배열(arr)로 전환한다.
수식은 X + Y = Z 의 형태로 고정되어 있기때문에 각 인덱스에 위치한 값들 또한
정수와 연산자로 고정되어 있다.
반복문 안에 문자열 연산식의 결과를 저장할 정수 변수 result를 선언하고,
arr의 첫번 째 요소(arr[0])로 초기화 한다.
arr의 두번 째 요소(arr[1])는 연산자 이므로, 연사자가 "+"인지 "-"인지 확인하고,
arr의 세번 째 요소(arr[2])를 연산자에 맞게 result와 연산한다.
마지막으로 arr의 마지막 요소(arr[4])와 result값을 비교하여
"O"나 "X"를 리턴한다.
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
for (int i = 0; i < quiz.length; i++) {
String[] arr = quiz[i].split(" ");
int result = Integer.valueOf(arr[0]);
result = arr[1].equals("+") ? result + Integer.valueOf(arr[2]) : result - Integer.valueOf(arr[2]);
answer[i] = result == Integer.valueOf(arr[4]) ? "O" : "X";
}
return answer;
}
}
참고