class Solution {
fun solution(my_string: String): Array<String> {
var answer = mutableListOf<String>()
for(idx in 1..my_string.length){
answer.add(my_string.takeLast(idx))
}
return answer.sorted().toTypedArray()
}
}
class Solution {
fun solution(myString: String) = myString.indices.map(myString::substring).sorted()
}
indices
indices는 String이나 List 등의 컬렉션에서 유효한 인덱스 범위를 나타내는 속성입니다. 예를 들어, "banana"라는 문자열의 경우 indices는 0부터 5까지의 범위인 0..5를 반환합니다. 이 범위는 문자열의 각 인덱스를 순회하기 위해 사용됩니다.
val myString = "banana"
println(myString.indices) // 출력: 0..5
적용: myString.indices는 "banana" 문자열의 인덱스 범위인 0..5를 반환하고, 이 인덱스 범위에서 각 인덱스를 순차적으로 처리하려고 합니다.
map(myString::substring)
map
은 주어진 컬렉션의 각 요소에 대해 특정 함수를 적용하고 그 결과를 새로운 리스트로 반환하는 함수입니다. 여기서는 각 인덱스에 대해 myString.substring()
함수를 호출하여 접미사를 추출하는 데 사용됩니다.
myString::substring
는 myString.substring(startIndex: Int)
함수에 대한 참조를 의미합니다. 각 인덱스에 대해 substring
을 호출하여 해당 인덱스에서부터 끝까지의 접미사를 반환합니다.
val myString = "banana"
val substrings = myString.indices.map(myString::substring)
println(substrings) // 출력: ["banana", "anana", "nana", "ana", "na", "a"]
적용: myString.indices.map(myString::substring)는 "banana"에서 각 인덱스마다 접미사를 잘라서 새로운 리스트로 만듭니다. 결과적으로 ["banana", "anana", "nana", "ana", "na", "a"]가 생성됩니다.
substring(startIndex: Int)
Kotlin의 String 확장 함수로, 주어진 시작 인덱스부터 문자열의 끝까지의 부분 문자열을 반환합니다.
startIndex: 부분 문자열을 시작할 인덱스를 지정하는 값입니다. 이 인덱스는 포함됩니다.
반환값: startIndex부터 문자열의 끝까지 잘라낸 새로운 문자열을 반환합니다.
val myString = "banana"
val result = myString.substring(2)
println(result) // 출력: "nana"
startIndex가 0일 때
val myString = "banana"
val result = myString.substring(0)
println(result) // 출력: "banana"
sorted()
sorted()는 리스트를 사전순(오름차순)으로 정렬하는 함수입니다. 주어진 리스트가 문자열이라면, 문자열의 사전순으로 정렬됩니다.
val substrings = listOf("banana", "anana", "nana", "ana", "na", "a")
val sortedSubstrings = substrings.sorted()
println(sortedSubstrings) // 출력: ["a", "ana", "anana", "banana", "na", "nana"]
적용: sorted()는 접미사 리스트를 사전순으로 정렬합니다. 결과적으로 ["a", "ana", "anana", "banana", "na", "nana"]로 정렬됩니다.