본문 바로가기

프로그래머스

OX퀴즈

728x90

class Solution {
    public String[] solution(String[] quiz) {
        String[] answer = new String[quiz.length];
        String[] temp = new String[quiz.length];
        int cnt=0;
        for(int i =0;i<quiz.length;i++)
        {
            temp = quiz[i].split(" ");
            System.out.println(quiz[i]);
            if(temp[1].equals("-"))
            {
                int a = Integer.parseInt(temp[0]);
                int b = Integer.parseInt(temp[2]);
                int c = Integer.parseInt(temp[4]);
                if( c == (a-b))
                {
                    answer[cnt] ="O";
                }
                else
                {
                    answer[cnt] ="X";
                }
            }
            else if(temp[1].equals("+"))
            {
                int a = Integer.parseInt(temp[0]);
                int b = Integer.parseInt(temp[2]);
                int c = Integer.parseInt(temp[4]);
                if( c == (a+b))
                {
                    answer[cnt] ="O";
                }
                else
                {
                    answer[cnt] ="X";
                }
            }
            cnt++;
        }
        return answer;
    }
}

 

아래에 코드는 프로그래머스 출처했습니다.

class Solution {
    public String[] solution(String[] quiz) {

        int size = quiz.length;
        String[] answer = new String[size];
        for (int i = 0; i < answer.length; i++) {
            String[] splitQ = quiz[i].trim().split(" ");
            int X = Integer.parseInt(splitQ[0]);
            int Y = Integer.parseInt(splitQ[2]);
            int Z = Integer.parseInt(splitQ[4]);
            int cal = 0;
            if(splitQ[1].equals("-")){
                cal = X - Y;
            }else{
                cal = X + Y;
            }

            answer[i] = Z == cal ? "O" : "X";
        }

        return answer;
    }
}

제 생각한 비슷한 코드 입니다. 3항연산자와 디테일한 조건이 아닌 else를 썻습니다.

 

베스트 코드

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

이부분은 전혀 이해가 되지 않습니다... ㅠㅠ 근데 간결하고 좋아보이는 코드이네요.

 

728x90

'프로그래머스' 카테고리의 다른 글

평행  (0) 2022.12.11
안전지대  (0) 2022.12.08
영어가 싫어요  (0) 2022.12.06
캐릭터의 좌표  (0) 2022.12.06
2차원으로 만들기  (0) 2022.12.05