FireDrago
Lv0 - OX 퀴즈 본문
문제설명
덧셈, 뺄셈 수식들이 '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 ≤ quiz의 길이 ≤ 10
- X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며,
각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다.
- X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다.
- 10,000 ≤ X, Y ≤ 10,000
- 20,000 ≤ Z ≤ 20,000
- [연산자]는 + 와 - 중 하나입니다.
생각정리
1. 제한사항에서 기호와 숫자 사이에 하나의 공백이 존재한다고 했으므로 split (" ") 으로 배열에 나눠담으면 되겠군
2. 그렇게 되면 숫자 세개와 기호가 각각 정해진 인덱스에 담기게 되니까 그걸 이용하면 쉽겠네
3. 변수에 담아서 확인만 하면 쉽게 풀리겠다.
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
// 분리하고 각각 숫자 기호 변수에 담기
for (int i = 0; i < quiz.length; i++) {
String[] line = quiz[i].split(" ");
int a = Integer.parseInt(line[0]);
String sym = line[1];
int b = Integer.parseInt(line[2]);
int c = Integer.parseInt(line[4]);
// 변수를 이용하여 계산값 맞는지 결과에 따라
// answer 배열에 o ,x 대입
boolean result;
if (sym.equals("+")) {
result = (a + b == c);
} else {
result = (a - b == c);
}
answer[i] = result ? "O" : "X";
}
return answer;
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| Lv0 - 캐릭터의 좌표 (자바) (0) | 2023.06.22 |
|---|---|
| Lv0 - 직사각형 넓이 구하기 (0) | 2023.06.18 |
| Lv0 - 삼각형의 완성 (2) (자바) (0) | 2023.06.17 |
| Lv0 - 소인수분해 (0) | 2023.06.13 |
| Lv0 - 중복문자 제거 (자바) (0) | 2023.06.12 |
