본문 바로가기
코딩테스트

[프로그래머스] 공백으로 구분하기 2

by liz_devel 2025. 1. 21.

🗒 문제


📝 나의 문제풀이

class Solution {
    fun solution(my_string: String): Array<String> {
      return my_string.split(" ").filter{ it.isNotEmpty() }.toTypedArray()
            
        }
    }

 


📝 다른 사람의 문제 풀이

다른 사람의 문제 풀이는 좋아요 수가 높거나 많은 사람들이 푼 방법 기준으로 첨부하였습니다.

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

🖊 문제 풀이 시 알면 좋을 것

split

  • 문자열을 특정 구분자(예: 공백) 기준으로 나눠 리스트를 생성합니다.
  • 기본적으로 단일 구분자를 사용하지만, 정규 표현식도 활용할 수 있습니다.
val result = myString.split(delimiter: String)
val result = myString.split(delimiter: Regex)

 

  • 연속된 구분자는 빈 문자열로 분리됩니다.
val str = "  i   love you "
println(str.split(" ")) // 출력: [, , i, , , love, you, ]

 

정규 표현식과 \\s+

  • 정규 표현식 \\s+는 하나 이상의 공백(스페이스, 탭, 줄 바꿈 등)을 의미합니다.
  • split("\\s+".toRegex()):
    • 연속된 공백을 하나로 묶어 처리하므로, 빈 문자열 없이 정확히 단어만 추출할 수 있습니다.
val str = "  i   love you "
println(str.split("\\s+".toRegex())) // 출력: [i, love, you]

 

toRegex() 설명

toRegex()는 문자열을 정규 표현식 객체로 변환하는 함수입니다.
코틀린에서는 문자열만으로 정규 표현식 기능을 사용할 수 없기 때문에, **정규 표현식 객체(Regex)**로 변환해야 합니다.

 

trim()

  • 문자열 양쪽 끝의 공백을 제거합니다.
val str = "   i love you   "
println(str.trim()) // 출력: "i love you"
반응형