728x90

X [+/-] Y = Z

연산식이 문자열로 주어질때 연산값이 맞다면 O 틀리면 X 를 반환한 문자열 배열을 반환

 

public String[] solution(String[] quiz) {

String[] answer = new String[quiz.length];

for (int i = 0; i < quiz.length; i++) {

String[] a =quiz[i].split(" ");

if(a[1].equals("+")) {

if(Integer.parseInt(a[0])+Integer.parseInt(a[2])==Integer.parseInt(a[4])) {

answer[i]="O";

}else answer[i]="X";

}else {

if(Integer.parseInt(a[0])-Integer.parseInt(a[2])==Integer.parseInt(a[4])) {

answer[i]="O";

}else answer[i]="X";

}

}

return answer;

}

숫자와 연산자 사이는 공백으로 비워져 있으므로 공백으로 숫자와 연산자를 구분 

 

연산자는 +또는 -밖에 없으므로

a[0]+a[2]*a[1] = a[4]로 하고 

a[1]가 +이면 1로, -이면 -1로 바꾸어주면 좀더 간결한 식을 만들 수 있다.

 

public String[] solution2(String[] quiz) {

String[] answer = new String[quiz.length];

for (int i = 0; i < quiz.length; i++) {

String[] a = quiz[i].split(" ");

answer[i]=(Integer.parseInt(a[0]) + Integer.parseInt(a[2])*((a[1].equals("+"))?1:-1) == Integer.parseInt(a[4]))? "O":"X";

}

return answer;

}

'Java > Coding Test' 카테고리의 다른 글

문자열 밀기 문제풀이  (0) 2023.09.17
다항식 더하기 문제풀이  (0) 2023.09.17
연속된 수의 합 문제풀이  (0) 2023.09.17
안전지대 문제풀이  (0) 2023.09.17
겹치는 선분의 길이 문제풀이  (0) 2023.09.17

+ Recent posts