알고리즘 문제 풀이/프로그래머스
[Algorithm] 프로그래머스 - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Kotlin)
참깨빵위에참깨빵_
2024. 5. 31. 15:47
728x90
반응형
문자열 myString, pat이 주어진다. myString의 부분 문자열 중 pat으로 끝나는 가장 긴 부분 문자열을 찾아서 리턴하는 함수를 완성하라
코틀린의 substringBeforeLast()를 쓰면 간단하게 풀 수 있다. StringBuilder도 같이 쓰면 아래와 같다.
class Solution {
fun solution(myString: String, pat: String): String {
val sb = StringBuilder()
val a = myString.substringBeforeLast(pat)
sb.append(a).append(pat)
return sb.toString()
}
}
substringBeforeLast()를 설명하는 공식문서 링크는 아래를 확인한다.
https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.text/substring-before-last.html
substringBeforeLast - Kotlin Programming Language
kotlinlang.org
구분 기호가 마지막으로 등장하기 전의 하위 문자열을 리턴한다. 문자열에 구분 기호가 포함돼 있지 않으면 기본값이 원래 문자열인 missingDelimiterValue를 리턴한다
fun String.substringBeforeLast(
delimiter: Char,
missingDelimiterValue: String = this
): String
fun String.substringBeforeLast(
delimiter: String,
missingDelimiterValue: String = this
): String
delimiter로 넘긴 char 또는 String이 나오기 전까지의 문자열을 리턴한다.
이렇게 작성하고 실행하면 a, pat은 각각 아래와 같다.
a : AbC
pat : dE
그래서 append()를 써서 둘을 붙여야 한다. StringBuilder를 쓰지 않고 String만 사용하더라도 동일하다.
반응형