[프로그래머스]OX퀴즈

조광희·2023년 9월 14일

프로그래머스

목록 보기
1/1

문제 설명

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

제한사항

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

입출력 예

문제 풀이

전체 코드

class Solution {
    fun solution(quiz: Array<String>): Array<String> {
        var answer: Array<String> = arrayOf<String>()
        for(i in 0 until quiz.size){
            var test = quiz[i]
            var test1 = test.split(" ")//quiz를 여백에 맞춰 짜름
            if(test1[1] == "-"){// 연산자가 -일때
                var ans = test1[0].toInt() - test1[2].toInt()
                if(ans == test1[4].toInt()){
                    answer += "O"
                }else{

                    answer += "X"
                }
            }else{//연산자가 + 일때
                var ans = test1[0].toInt() + test1[2].toInt()

                if(ans == test1[4].toInt()){
                    answer += "O"
                }else{
                    answer += "X"
                }
            }
        }
        return answer
    }
}

해설

우선 quiz에 있는 수식의 변수와 연산자를 공백으로 나누어 저장한다.

            var test = quiz[i]
            var test1 = test.split(" ")//quiz를 여백에 맞춰 짜름

그 후 연산자의 상태에 따라 if문을 사용하여 계산을 실행하고, 결과값을 answer에 저장한다.

    for(i in 0 until quiz.size){
        var test = quiz[i]
        var test1 = test.split(" ")//quiz를 여백에 맞춰 짜름
        if(test1[1] == "-"){// 연산자가 -일때
            var ans = test1[0].toInt() - test1[2].toInt()
            if(ans == test1[4].toInt()){
                answer += "O"
            }else{

                answer += "X"
            }
        }else{//연산자가 + 일때
            var ans = test1[0].toInt() + test1[2].toInt()

            if(ans == test1[4].toInt()){
                answer += "O"
            }else{
                answer += "X"
            }
        }
    }

그 후 정답을 출력하면 끝

profile
다시시작

0개의 댓글