class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
String[] temp = new String[quiz.length];
int cnt=0;
for(int i =0;i<quiz.length;i++)
{
temp = quiz[i].split(" ");
System.out.println(quiz[i]);
if(temp[1].equals("-"))
{
int a = Integer.parseInt(temp[0]);
int b = Integer.parseInt(temp[2]);
int c = Integer.parseInt(temp[4]);
if( c == (a-b))
{
answer[cnt] ="O";
}
else
{
answer[cnt] ="X";
}
}
else if(temp[1].equals("+"))
{
int a = Integer.parseInt(temp[0]);
int b = Integer.parseInt(temp[2]);
int c = Integer.parseInt(temp[4]);
if( c == (a+b))
{
answer[cnt] ="O";
}
else
{
answer[cnt] ="X";
}
}
cnt++;
}
return answer;
}
}
아래에 코드는 프로그래머스 출처했습니다.
class Solution {
public String[] solution(String[] quiz) {
int size = quiz.length;
String[] answer = new String[size];
for (int i = 0; i < answer.length; i++) {
String[] splitQ = quiz[i].trim().split(" ");
int X = Integer.parseInt(splitQ[0]);
int Y = Integer.parseInt(splitQ[2]);
int Z = Integer.parseInt(splitQ[4]);
int cal = 0;
if(splitQ[1].equals("-")){
cal = X - Y;
}else{
cal = X + Y;
}
answer[i] = Z == cal ? "O" : "X";
}
return answer;
}
}
제 생각한 비슷한 코드 입니다. 3항연산자와 디테일한 조건이 아닌 else를 썻습니다.
베스트 코드
class Solution {
public String[] solution(String[] quiz) {
for(int i=0; i<quiz.length; i++){
String[] text = quiz[i].split(" ");
int result = Integer.parseInt(text[0]) + ( Integer.parseInt(text[2]) * ( text[1].equals("+") ? 1:-1) );
quiz[i] = result == Integer.parseInt(text[4])? "O": "X";
}
return quiz;
}
}
이부분은 전혀 이해가 되지 않습니다... ㅠㅠ 근데 간결하고 좋아보이는 코드이네요.