키로 연결하기
Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 39번째.
associateBy는 계산된 키에서 원본 요소로 매핑을 생성합니다. 키가 반복되면 해당 키에 대한 마지막 요소가 유지됩니다. 일치하는 모든 요소를 보존해야 할 때는 groupBy를 사용하고, 키마다 가장 최근 요소 하나만 필요할 때는 associateBy를 사용하세요.
main 내부:
val latest = listOf("a", "to", "b").associateBy { it.length }
println(latest[1])a와 b 모두 키가 1이므로, 해당 키에서는 b가 a를 대체합니다.
associateBy는 계산된 키가 충돌할 때 마지막 요소를 유지합니다.
챌린지
중급words: List<String>, length: Int 매개변수를 사용하여 lastOfLength를 완성하세요. 단어 길이를 키로 사용하여 associateBy를 사용하세요. 요청된 길이의 마지막 입력 단어를 반환하고, 해당 단어가 없으면 missing을 반환하세요.
위에서 더 엄격한 범위를 지정하지 않은 경우, 각 수준의 컬렉션에는 최대 100개의 요소가 포함되며, 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.
String 유형의 값을 반환하세요. 제공된 입력/출력 코드를 그대로 유지하세요. 이 코드는 스칼라 인수를 한 줄에 하나씩 읽습니다. 리스트는 개수와 그 뒤의 요소들로 시작하며, 맵은 항목 개수와 그 뒤의 각 키 및 값으로 시작합니다. 중첩 리스트에서는 각 행마다 개수와 요소 형식을 반복합니다. 제공된 main은 반환값을 출력한 다음 줄바꿈 하나를 출력합니다. 리스트는 Kotlin의 표준 대괄호 형식을 사용하며, 추가 레이블은 출력하지 마세요.
직접 해보기
fun lastOfLength(words: List<String>, length: Int): String {
// 여기에 솔루션을 작성하세요.
return ""
}
fun main() {
val wordsCount = readln().toInt()
val words = mutableListOf<String>()
for (i0 in 0 until wordsCount) {
val wordsItem = readLine().orEmpty()
words.add(wordsItem)
}
val length = readln().toInt()
println(lastOfLength(words, length))
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드