코딩테스트/프로그래머스

[프로그래머스] OX퀴즈

블로그 주인장 2023. 8. 8.

 

 

목차

     

     


    📢 문제 출처


    ⏰ 문제 설명

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

    ⏰ 제한 사항

    • (1). 연산 기호와 숫자 사이는 항상 하나의 공백이 존재합니다.
    • (2). 단 음수를 표시하는 마이너스 기호와 숫자 사이에는 공백이 존재하지 않습니다.
    • (3). 1 ≤ quiz의 길이 ≤ 10
    • (4). X, Y, Z는 각각 0부터 9까지 숫자로 이루어진 정수를 의미하며, 각 숫자의 맨 앞에 마이너스 기호가 하나 있을 수 있고 이는 음수를 의미합니다.
    • (5). X, Y, Z는 0을 제외하고는 0으로 시작하지 않습니다
    • (6). [연산자]는 + 와 - 중 하나입니다.

    ⏰ 풀이

    class Solution {
        public String[] solution(String[] quiz) {
            String[] answer = new String[quiz.length];
    
            for (int i = 0; i < quiz.length; i++) {
                String[] s = quiz[i].split(" ");
                int i1 = Integer.parseInt(s[0]);
                int i2 = Integer.parseInt(s[2]);
                int iresult = Integer.parseInt(s[4]);
                int icheck = 0;
                char cal = s[1].charAt(0);
    
                switch (cal){
                    case '+':
                        icheck = i1 + i2;
                    break;
                    case '-':
                        icheck = i1 - i2;
                        break;
                }
                if(iresult == icheck){
                    answer[i] = "O";
                }
                else {
                    answer[i] = "X";
                }
            }
    
            return answer;
        }
    }
    • 배열에 있는 수식을 풀어서 값이 맞는지 체크해서 "O" or "X"로 출력해야한다.
    • quiz의 배열 갯수를 확인해서, answer에 객체를 생성한다.
    • 배열의 갯수만큼 반복문을 돌려서 수식을 나눈다.
    • 문자와 숫자 사이에는 공백이 있기 때문에. split(" ")을 사용하여 공백에 있는 문자나 숫자를 하나씩 추출한다.
    • 각 배열에 맞는 자료형을 받아서 값을 넣어준다.
    • 연산자는 [+] or [-] 밖에 없기 때문에 받은 문자에 대한 조건을 걸어서 연산을 진행한다.
    • 진행한 후에 진짜 값이 맞는지 계산한 후에  answer에 리턴한다.

     

    반응형

    댓글