본문 바로가기
algorithm

[프로그래머스] OX퀴즈, java

by skysline 2023. 3. 28.
반응형

`OX퀴즈`

문제 설명

덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.

입출력 예

3 - 4 = -3 은 틀린 수식이므로 "X", 5 + 6 = 11 은 옳은 수식이므로 "O" 입니다. 따라서 ["X", "O"]를 return합니다.

19 - 6 = 13 은 옳은 수식이므로 "O", 5 + 66 = 71 은 옳은 수식이므로 "O", 5 - 15 = 63 은 틀린 수식이므로 "X", 3 - 1 = 2는 옳은 수식이므로 "O" 따라서 ["O", "O", "X", "O"]를 return합니다.

 


code

class Solution {
    public String[] solution(String[] quiz) {
        String[] answer = new String[quiz.length];
        for (int i = 0; i < quiz.length; i++) {
            String[] str = quiz[i].split(" ");

            int num1 = Integer.parseInt(str[0]);
            int num2 = Integer.parseInt(str[2]);
            int result = Integer.parseInt(str[4]);

            if (str[1].equals("+")){
                answer[i] = ((num1 + num2) == result)? "O" : "X";
            }
            else if (str[1].equals("-")) {
                answer[i] = ((num1 - num2) == result) ? "O" : "X";
            }
        }
        return answer;
    }
}

1.정답을 담을 answer 배열 을 quiz길이만큼 생성한다.

2. quiz 를 순회하며 str 배열에 quiz[i] 번째 데이터를 공백을 기준으로 split 한다. 

  • i == 0 일때 ["19-6=13"]
  • i == 1 일때 ["5+66=71"]
  • i == 2 일때 ["5-15=63"]
  • ......

3.여기서 규칙이 있다.

  • str[0] == 제일처음 오는 숫자
  • str[1] == 연산자
  • str[2] == 두번째 수
  • str[4] == 정답값 

각 변수에 담아준뒤 str[1]번째가 "+" 라면 num1+num2 가 정답값과 같은지 비교후 같다면 O를 아니면 X를 넣어준다.

결과

반응형

댓글