문제

프로그래머스 문제링크
풀이 코드
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
int i = 0;
for(String q : quiz)
{
String[] bits = q.split(" ");
int num1 = Integer.parseInt(bits[0]);
int num2 = Integer.parseInt(bits[2]);
int sum = Integer.parseInt(bits[4]);
if (bits[1].equals("+"))
{
if (num1 + num2 == sum)
answer[i++] = "O";
else
answer[i++] = "X";
}
else
{
if (num1 - num2 == sum)
answer[i++] = "O";
else
answer[i++] = "X";
}
}
return answer;
}
}
리뷰
- 수식이 옳다면 "O", 수식이 틀리다면 "X"를 순서대로 담은 배열을 반환하는 문제입니다.
- quiz.length == answer.length입니다.
문제에 따라 정답의 갯수는 같기 때문에 길이는 같습니다.
- 확장된 for문을 사용하여 quiz배열에 있는 것을 순차적으로 String q에 담아줍니다.
3-1. bits에 문제들을 스플릿을 해줍니다.
3-2. 이 때, 숫자와 연산자는 공백으로 구분되어 있기 때문에 구분자로 공백을 넣어줍니다.
3-3. 그렇게 되면 0번째, 2번째 index에는 숫자가 들어있으며, 1번째 index에는 연산자가 들어 있습니다. 4번째 index에는 결과값이 들어 있습니다.
- bits의 1번째 index는 연산자를 가지고 있기때문에 equals를 사용하여 +와 -일때에 따라 answer에 수식이 옳은지 틀린지를 넣어줍니다.
삼항연산자를 이용
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
int i = 0;
for(String q : quiz)
{
String[] bits = q.split(" ");
int num1 = Integer.parseInt(bits[0]);
int num2 = Integer.parseInt(bits[2]);
int sum = Integer.parseInt(bits[4]);
if (bits[1].equals("+"))
{
answer[i++] = (num1 + num2) == sum ? "O" : "X";
}
else if (bits[1].equals("-"))
{
answer[i++] = (num1 - num2) == sum ? "O" : "X";
}
}
return answer;
}
}