본문 바로가기
프로그래머스/[프로그래머스 - JAVA] Lv.0

[프로그래머스 - JAVA] OX퀴즈

by 코딩하는 흰둥이 2023. 3. 18.
반응형


입출력 예

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;
    }
}

이 분 풀이가 제일 깔끔한거 같다 있는 그대로 읽으면 된다.

댓글