코틀린/코딩테스트

코딩테스트 [모음 제거]

정혜현 2024. 6. 24. 10:23

문제

영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.

 

https://school.programmers.co.kr/learn/courses/30/lessons/120849


 

풀이

1. 접근

1.1 관찰

특정 문자만 제거해 반환하는 문제

입력 : 문자열

출력 : 문자열

 

1.2 계획 

for을 돌려서 담아야겠다.

조건걸기 : if문으로 a, e, i, o, u 모음과 일치하는지 확인하기 

answer에 담기 : 일치하지 않으면 담기

 

 

 

2. 시행착오

2.1 시도

 

class Solution {
    fun solution(my_string: String): String {
        var answer: String = ""
        for(i in my_string) {
            if (i != 'a' && i != 'e' && i != 'i' && i != 'o' && i != 'u') answer += i
        }
        return answer
    }
}

 

검증결과 : 성공

 

조건이 길어서 다른 방법도 찾아봤는데 좀전에 공부했던 replace()와 정규식으로 만들 수 있는 방법이다. 

class Solution {
    fun solution(my_string: String): String = my_string.replace("a|e|i|o|u".toRegex(), "")
}

 

위는 정규식으로 변환하는 방법이고 공부했던대로 객체를 생성해서 쓸 수도 있다.

class Solution {
    fun solution(my_string: String): String = my_string.replace(Regex("a|e|i|o|u"), "")
}

 

 

 


회고

 

 

문제를 풀 때 for문에 if문 패턴이 반복돼서 새로운 방법을 익히고 싶었는데 간결하면서도 유용한 정규식을 알게돼서 기쁘고 문자열 문제 특히 문자열을 확인할 때 자주 써봐야겠다.