관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 공백으로 구분하기 2 (Kotlin) 본문

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

[Algorithm] 프로그래머스 - 공백으로 구분하기 2 (Kotlin)

참깨빵위에참깨빵_ 2024. 5. 31. 16:22
728x90
반응형
단어가 공백 1개 이상으로 구분돼 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 리턴하는 함수를 작성하라

 

 

공백 1개였던 게 2개로 늘어난 것 뿐이다.

 

class Solution {
    fun solution(myString: String): List<String> {
        return myString.trim().split("\\s+".toRegex())
    }
}

 

우선 trim()으로 앞뒤의 공백을 제거한다. 입출력 예를 보면 앞뒤의 공백들을 무시하는 걸 볼 수 있다.

이후 split()에 공백을 넣고 제출하면 안 된다. 앞에서 말했듯 앞뒤의 공백만 제거했을 뿐이고, 글자 사이의 여러 공백들은 그대로 남아있는 상태기 때문에 split()에 공백을 넣으면 결과에 빈 문자열이 포함될 수 있다.

그래서 "\\s+".toRegex()를 통해 연속되는 공백들을 하나의 공백으로 묶어버린다. 이렇게 하면 i와 love 사이의 여러 공백들도 하나의 공백으로 취급되기 때문에 i와 love라는 2개 문자열만 결과로 얻을 수 있다.

 

참고로 \\s는 정규식에서 공백 문자를 의미하고, space, tab, 줄 바꿈(newline)을 처리할 수 있다. +는 \\s가 한 번 이상 반복됨을 의미하기 때문에 여러 공백을 가진 문자열에서 사용할 수 있다.

반응형
Comments