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