관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - OX 퀴즈 (Kotlin) 본문

알고리즘 문제 풀이/프로그래머스

[Algorithm] 프로그래머스 - OX 퀴즈 (Kotlin)

참깨빵위에참깨빵_ 2023. 1. 9. 23:53
728x90
반응형
덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어진다. 수식이 옳다면 "O", 틀리면 "X"를 순서대로 담은 배열을 리턴하는 solution()을 완성하라

 

 

앞에서 풀었던 문자열 계산하기 문제와 비슷하게 풀 수 있지 않을까 싶어서 고민해봤지만 풀리지 않았다.

아래는 인터넷에서 찾은 풀이를 코틀린으로 변환한 것이다.

 

https://velog.io/@jsj3282/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-OX%ED%80%B4%EC%A6%88

 

프로그래머스 OX퀴즈

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

velog.io

class Solution {
    fun solution(quiz: Array<String>): Array<String?> {
        val answer = arrayOfNulls<String>(quiz.size)
        for (i in quiz.indices) {
            val arr = quiz[i].split(" ".toRegex()).toTypedArray()
            if (arr[1] == "+") {
                if (arr[0].toInt() + arr[2].toInt() == arr[4].toInt()) {
                    answer[i] = "O"
                } else {
                    answer[i] = "X"
                }
            } else if (arr[1] == "-") {
                if (arr[0].toInt() - arr[2].toInt() == arr[4].toInt()) {
                    answer[i] = "O"
                } else {
                    answer[i] = "X"
                }
            }
        }
        return answer
    }
}

 

이것을 간단하게 줄이면 아래와 같다.

 

class Solution {
    fun solution(quiz: Array<String>): Array<String> {
        return quiz.map { s: String ->
            val arr = s.trim().split(" ".toRegex())
            if (arr[1] == "+" && arr[0].toInt() + arr[2].toInt() == arr[4].toInt() || arr[0].toInt() - arr[2].toInt() == arr[4].toInt()) "O" else "X"
        }.toTypedArray()
    }
}

 

반응형
Comments