입출력 예
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
- 3 - 4 = -3 은 틀린 수식이므로 "X", 5 + 6 = 11 은 옳은 수식이므로 "O" 입니다. 따라서 ["X", "O"]를 return합니다.
입출력 예 #2
- 19 - 6 = 13 은 옳은 수식이므로 "O", 5 + 66 = 71 은 옳은 수식이므로 "O", 5 - 15 = 63 은 틀린 수식이므로 "X", 3 - 1 = 2는 옳은 수식이므로 "O" 따라서 ["O", "O", "X", "O"]를 return합니다.
- 내 풀이
class Solution {
public String[] solution(String[] quiz) {
String[] answer = {};
// return값 초기화
answer = new String[quiz.length];
// 숫자를 담을 문자 배열 변수
String[] check = new String[quiz.length];
for (int i = 0; i < quiz.length; i++) {
// 배열에 매개변수를 공백으로 잘라서 넣는다
check = quiz[i].split(" ");
// 0번에 숫자 , 1번에 연산자 , 2번에 숫자 , 3번에 = , 4번에 숫자
int num1 = Integer.parseInt(check[0]);
int num2 = Integer.parseInt(check[2]);
int num3 = Integer.parseInt(check[4]);
// 계산 변수
int cal = 0;
if (check[1].equals("+")){
cal = num1 + num2;
}else if(check[1].equals("-")){
cal = num1 - num2;
}
if(cal == num3){
answer[i] = "O";
}else {
answer[i] = "X";
}
}
return answer;
}
}
quiz의 매개변수를 배열에 각각 집어넣을때 split과 replaceAll 을 사용하면서 시행착오를 많이 거침
- 다른 사람 풀이
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;
}
}
이 분 풀이가 제일 깔끔한거 같다 있는 그대로 읽으면 된다.
'프로그래머스 > [프로그래머스 - JAVA] Lv.0' 카테고리의 다른 글
[프로그래머스 - JAVA] 연속된 수의 합 (1) | 2023.03.18 |
---|---|
[프로그래머스 - JAVA] 다음에 올 숫자 (0) | 2023.03.18 |
[프로그래머스 - JAVA] 최빈값 구하기 (0) | 2023.03.18 |
[프로그래머스 - JAVA] 다항식 더하기 (0) | 2023.03.18 |
[프로그래머스 - JAVA] 저주의 숫자 3 (0) | 2023.03.17 |
댓글