문제
영어에선 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문 패턴이 반복돼서 새로운 방법을 익히고 싶었는데 간결하면서도 유용한 정규식을 알게돼서 기쁘고 문자열 문제 특히 문자열을 확인할 때 자주 써봐야겠다.
'코틀린 > 코딩테스트' 카테고리의 다른 글
코딩테스트 [최댓값 만들기(1)] (0) | 2024.06.25 |
---|---|
코딩테스트 [점의 위치 구하기] (0) | 2024.06.25 |
코딩테스트 [편지] (0) | 2024.06.24 |
코딩테스트 [배열 자르기] (1) | 2024.06.21 |
코딩테스트 [자릿수 더하기] (0) | 2024.06.20 |