Fold로 누적하기
Coddy Kotlin 여정의 논리와 흐름 섹션에 포함된 레슨. 63개 중 34번째.
fold는 명시적인 초기 누산기에서 시작하여 요소를 순서대로 처리합니다. 람다는 누산기와 다음 요소를 받아 다음 누산기를 반환합니다. 초기값은 빈 입력에 대한 결과이기도 합니다.
main 내부:
println(listOf(2, 3, 4).fold(1) { product, value -> product * value })누산기는 1에서 시작하여 2, 6, 24가 됩니다.
fold는 초기 누적기를 빈 입력의 결과로 사용합니다.
챌린지
중급values: List<Int> 매개변수를 사용하여 sumWithFold를 완성하세요. 초기값 0으로 fold를 사용하여 값들의 합을 반환하세요.
위에서 더 엄격한 범위를 명시하지 않은 경우, 컬렉션은 각 수준에서 최대 100개의 요소를 포함하며, 정수 인수와 정수 컬렉션 값은 -1000에서 1000 사이입니다. 파싱을 위해 제공되는 텍스트에는 설명된 대로 유효하지 않거나 범위를 벗어난 표현이 포함될 수 있습니다.
Int 유형의 값을 반환하세요. 제공된 입력/출력 코드를 그대로 유지하세요. 이 코드는 스칼라 인수를 한 줄에 하나씩 읽습니다. 리스트는 개수로 시작한 다음 요소들이 이어지며, 맵은 항목 개수로 시작한 다음 각 키와 값이 이어집니다. 중첩 리스트에서는 각 행에 대해 개수와 요소 형식을 반복합니다. 제공된 main은 반환값을 출력한 다음 줄바꿈 하나를 출력합니다. 리스트는 Kotlin의 표준 대괄호 형식을 사용합니다. 추가 레이블은 출력하지 마세요.
직접 해보기
fun sumWithFold(values: List<Int>): Int {
// 여기에 솔루션을 작성하세요.
return 0
}
fun main() {
val valuesCount = readln().toInt()
val values = mutableListOf<Int>()
for (i0 in 0 until valuesCount) {
val valuesItem = readln().toInt()
values.add(valuesItem)
}
println(sumWithFold(values))
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
논리와 흐름의 모든 레슨
직접 연습해 보세요: Kotlin 플레이그라운드