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챌린지
중급입력으로 학생 이름 목록을 받습니다. 먼저 학생 수를 읽은 다음 각 이름을 읽으세요.
withIndex()를 사용하여 각 학생을 순위 번호와 함께 출력하세요(0이 아닌 1부터 시작).
입력 형식:
- 첫 번째 줄: 학생 수를 나타내는 정수
n - 다음
n줄: 학생 이름(문자열)
출력 형식:
다음 형식으로 각 학생을 별도의 줄에 출력하세요:
Rank 1: Alice
Rank 2: Bob
Rank 3: CharliewithIndex()는 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부터 시작해야 합니다
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드