Menu
Coddy logo textTech

중첩 Map

Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 9번째.

맵 값 자체가 맵일 수 있습니다. 각 조회 결과가 없을 수 있으므로 안전한 호출과 최종 대체값을 함께 사용하세요. 변경되는 수준에서 가변성이 필요하므로 가변 업데이트에는 require가 필요합니다.

main 내부:

val school = mapOf("Ada" to mapOf("math" to 9))
println(school["Ada"]?.get("art") ?: -1)

Ada는 존재하지만 내부의 art 키는 존재하지 않으므로 대체값이 사용됩니다.

존재하지 않을 수 있는 각 맵 수준에서 안전한 접근을 사용하세요.

challenge icon

챌린지

중급

매개변수 name: String, subject: String를 사용하여 nestedScore를 완성하세요. 고정된 레코드 Ada: math 9, art 7; Bo: math 6을 사용하세요. 요청된 점수를 반환하고, name 또는 subject가 없으면 -1을 반환하세요.

위에서 더 엄격한 범위를 명시하지 않은 경우, 컬렉션은 각 수준에서 최대 100개의 요소를 포함하며, 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.

Int 유형의 값을 반환하세요. 제공된 입력/출력 코드를 그대로 유지하세요. 이 코드는 스칼라 인수를 한 줄에 하나씩 읽습니다. 리스트는 개수와 그 뒤에 오는 요소들로 시작하고, 맵은 항목 개수와 그 뒤에 오는 각 키와 값으로 시작합니다. 중첩 리스트에서는 각 행마다 개수와 요소 형식을 반복합니다. 제공된 main은 반환값 뒤에 줄바꿈 하나를 출력합니다. 리스트는 Kotlin의 표준 대괄호 형식을 사용합니다. 추가 레이블은 출력하지 마세요.

직접 해보기

fun nestedScore(name: String, subject: String): Int {
    // 여기에 솔루션을 작성하세요.
    return 0
}
fun main() {
    val name = readLine().orEmpty()
    val subject = readLine().orEmpty()
    println(nestedScore(name, subject))
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

논리와 흐름의 모든 레슨

직접 연습해 보세요: Kotlin 플레이그라운드