본문 바로가기
코딩테스트

프로그래머스 '옹알이 (2)' 코테풀이

by 생각스택 2025. 2. 24.
반응형

프로그래머스에서

레벨 1, 코틀린 언어, 정답률이 높은 순서대로 문제를 풀고 있습니다.

사이트 : https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&levels=1&languages=kotlin&page=3

 

코딩테스트 연습 | 프로그래머스 스쿨

개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!

school.programmers.co.kr

이번 문제는 '옹알이 (2)' 문제이고

위의 사이트에서 3페이지에서 내리다 보면 있습니다.

벌써 정답률이 62%로군요. 어쩐지 저한테는 점점 어려워지네요

그래도 열심히 해보겠습니다.

문제는 읽어보시면 이해할 것 같습니다.

제 풀이는 이렇습니다.

class Solution {
    fun solution(babbling: Array<String>): Int {
        var answer: Int = 0
        var charList = listOf('a', 'y', 'w', 'm')
        var list = listOf("aya", "ye", "woo", "ma")
        for(ele in babbling){
            var element = ele
            var isFirstA = true
            var isFirstY = true
            var isFirstW = true
            var isFirstM = true
            while(element.length > 0){
                if(element[0] == 'a'){
                    if(element.length < 3 || !isFirstA){
                        break
                    }
                    isFirstA = false
                    isFirstY = true
                    isFirstW = true
                    isFirstM = true
                    
                    if(element.substring(0, 3) == "aya"){
                        element = element.substring(3)
                    }else{
                        break
                    }  
                }else if(element[0] == 'y') {
                    if(element.length < 2 || !isFirstY){
                        break
                    }
                    isFirstA = true
                    isFirstY = false
                    isFirstW = true
                    isFirstM = true
                    if(element.substring(0, 2) == "ye"){
                        element = element.substring(2)
                    }else{
                        break
                    }
                }else if(element[0] == 'w'){
                    if(element.length < 3 || !isFirstW){
                        break
                    }
                    isFirstA = true
                    isFirstY = true
                    isFirstW = false
                    isFirstM = true
                    if(element.substring(0, 3) == "woo"){
                        element = element.substring(3)
                    }else{
                        break
                    }
                }else if(element[0] == 'm'){
                    if(element.length < 2 || !isFirstM){
                        break
                    }
                    isFirstA = true
                    isFirstY = true
                    isFirstW = true
                    isFirstM = false
                    if(element.substring(0, 2) == "ma"){
                        element = element.substring(2)
                    }else{
                        break
                    }
                }else{
                    break
                }
            }
            if(element.length == 0){
                answer++     
            }   
        }
        
        return answer
    }
}

무식하게 해서 풀었는데.

제가봐도 좀 이상하긴하는데

질문 있으시거나 더 나은 답변이 있으시면 댓글로 알려주세요

반응형