Menu
Coddy logo textTech

withIndex 메서드

Coddy Kotlin 여정의 기초 섹션에 포함된 레슨. 93개 중 75번째.

목록을 반복 처리할 때는 요소뿐만 아니라 그 위치도 알아야 하는 경우가 많습니다. withIndex() 메서드는 이 두 가지를 한 번에 제공합니다.

인덱스와 값의 쌍을 얻으려면 모든 리스트에서 withIndex()를 호출하세요:

val colors = listOf("Red", "Green", "Blue")
for ((index, color) in colors.withIndex()) {
    println("$index: $color")
}
// 출력:
// 0: Red
// 1: Green
// 2: Blue

괄호 안의 구문에 주목하세요: (index, color). 이를 구조 분해라고 하며, 인덱스와 값을 별도의 변수로 풀어냅니다. 이러한 변수는 코드에 적합한 이름으로 지정할 수 있습니다.

이 접근 방식은 카운터 변수로 인덱스를 수동으로 추적하는 것보다 더 깔끔합니다. 번호가 매겨진 목록을 표시하거나 위치에 따라 서로 다른 작업을 수행해야 할 때 특히 유용합니다:

val tasks = listOf("Wake up", "Exercise", "Eat breakfast")
for ((i, task) in tasks.withIndex()) {
    println("Step ${i + 1}: $task")
}
// 출력:
// Step 1: Wake up
// Step 2: Exercise
// Step 3: Eat breakfast
challenge icon

챌린지

중급

입력으로 학생 이름 목록을 받습니다. 먼저 학생 수를 읽은 다음 각 이름을 읽으세요.

withIndex()를 사용하여 각 학생을 순위 번호와 함께 출력하세요(0이 아닌 1부터 시작).

입력 형식:

  • 첫 번째 줄: 학생 수를 나타내는 정수 n
  • 다음 n줄: 학생 이름(문자열)

출력 형식:

다음 형식으로 각 학생을 별도의 줄에 출력하세요:

Rank 1: Alice
Rank 2: Bob
Rank 3: Charlie

withIndex()는 0부터 시작하는 인덱스를 제공하므로, 1부터 시작하는 순위 번호에 맞게 조정해야 합니다.

직접 해보기

fun main() {
    // 학생 수를 읽습니다
    val n = readLine()!!.toInt()
    
    // 학생 이름들을 리스트에 읽습니다
    val students = mutableListOf<String>()
    for (i in 1..n) {
        students.add(readLine()!!)
    }
    
    // TODO: 아래에 코드를 작성하세요
    // withIndex()를 사용하여 학생들을 순회하고 순위를 출력하세요
    // 기억하세요: withIndex()는 0부터 시작하는 인덱스를 제공하지만, 순위는 1부터 시작해야 합니다
    
}
quiz icon실력 점검

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

기초의 모든 레슨

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