관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 옹알이 (1) (Kotlin) 본문

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

[Algorithm] 프로그래머스 - 옹알이 (1) (Kotlin)

참깨빵위에참깨빵_ 2023. 1. 29. 22:34
728x90
반응형
조카가 아직 "aya", "ye", "woo", "ma" 4가지 발음을 최대 한 번씩 써서 조합한(이어 붙인) 발음밖에 하지 못한다. 문자열 배열 babbling이 매개변수로 주어질 때, 조카가 발음할 수 있는 단어 개수를 리턴하는 solution()을 완성하라

 

 

처음 프로그래머스 레벨 0 문제들을 만났을 때 가장 위에 있길래 눌러봤더니 어려워서 풀지 못했던 문제다. 다시 시도해도 풀지 못했다.

 

https://gyulpiki.tistory.com/entry/%EC%98%B9%EC%95%8C%EC%9D%B4-1-Java-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EC%9E%85%EB%AC%B8

 

옹알이 (1) - Java [프로그래머스 입문]

❤️ Problem 더보기 문제 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다.

gyulpiki.tistory.com

class Solution {
    fun solution(babbling: Array<String>): Int {
        val standard = arrayOf("aya", "ye", "woo", "ma")
        var answer = 0
        for (i in babbling.indices) {
            for (j in standard.indices) {
                while (babbling[i].contains(standard[j])) {
                    babbling[i] = babbling[i].replaceFirst(standard[j].toRegex(), " ")
                    if (babbling[i].trim { it <= ' ' }.isEmpty()) {
                        answer++
                    }
                }
            }
        }
        return answer
    }
}

 

간단하게 만들면 아래와 같다.

 

class Solution {
    fun solution(babbling: Array<String>): Int {
        val regex = "aya|ye|woo|ma".toRegex()
        return babbling.map { it.replace(regex, "") }
            .count { it.isEmpty() }
    }
}
반응형
Comments