관리 메뉴

나만을 위한 블로그

[Algorithm] 프로그래머스 - 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 (Kotlin) 본문

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

[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만 사용하더라도 동일하다.

반응형
Comments