[programmers] OX퀴즈

J-Cheol·2023년 11월 29일
0

프로그래머스

목록 보기
20/27
post-thumbnail

문제


프로그래머스 문제링크

풀이 코드


class Solution {
    public String[] solution(String[] quiz) {
        String[] answer = new String[quiz.length];
        int i = 0;
        for(String q : quiz)
        {
            String[] bits = q.split(" ");           
            int num1 = Integer.parseInt(bits[0]);
            int num2 = Integer.parseInt(bits[2]);
            int sum = Integer.parseInt(bits[4]);
           
            if (bits[1].equals("+"))
            {
                if (num1 + num2 == sum)
                    answer[i++] = "O";
                else
                    answer[i++] = "X";
            }
            else
            {                           
                if (num1 - num2 == sum)
                    answer[i++] = "O";
                else
                    answer[i++] = "X";
            }
        }
        return answer;
    }
}

리뷰


  1. 수식이 옳다면 "O", 수식이 틀리다면 "X"를 순서대로 담은 배열을 반환하는 문제입니다.
  2. quiz.length == answer.length입니다.
    문제에 따라 정답의 갯수는 같기 때문에 길이는 같습니다.
  3. 확장된 for문을 사용하여 quiz배열에 있는 것을 순차적으로 String q에 담아줍니다.
    3-1. bits에 문제들을 스플릿을 해줍니다.
    3-2. 이 때, 숫자와 연산자는 공백으로 구분되어 있기 때문에 구분자로 공백을 넣어줍니다.
    3-3. 그렇게 되면 0번째, 2번째 index에는 숫자가 들어있으며, 1번째 index에는 연산자가 들어 있습니다. 4번째 index에는 결과값이 들어 있습니다.
  4. bits의 1번째 index는 연산자를 가지고 있기때문에 equals를 사용하여 +와 -일때에 따라 answer에 수식이 옳은지 틀린지를 넣어줍니다.

삼항연산자를 이용


class Solution {
    public String[] solution(String[] quiz) {
        String[] answer = new String[quiz.length];
        int i = 0;
        for(String q : quiz)
        {
            String[] bits = q.split(" ");           
            int num1 = Integer.parseInt(bits[0]);
            int num2 = Integer.parseInt(bits[2]);
            int sum = Integer.parseInt(bits[4]);
           
            if (bits[1].equals("+"))
            {
                answer[i++] = (num1 + num2) == sum ? "O" : "X";
            }
            else if (bits[1].equals("-"))
            {     
                answer[i++] = (num1 - num2) == sum ? "O" : "X";
            }
        }
        return answer;
    }
}
profile
신입 백엔드 개발자(JAVA, Spring Boot, MYSQL)

0개의 댓글