🗒 문제
📝 나의 문제풀이
class Solution {
fun solution(numbers: IntArray, n: Int): Int {
var sum = 0
for(num in numbers){
sum += num
if(sum > n) {
return sum
}
}
return sum
}
}
📝 다른 사람의 문제 풀이
class Solution {
fun solution(numbers: IntArray, n: Int) = numbers.fold(0) { acc, i -> if (n >= acc) acc + i else acc }
}
🖊 문제 풀이 시 알면 좋을 것
fold
- 역할: 컬렉션의 원소를 초기값과 함께 누적 계산.
- 사용법: collection.fold(initial: R, operation: (acc: R, T) -> R)
- initial: 누적 계산의 초기값.
- acc: 현재까지의 누적값.
- T: 컬렉션의 각 원소.
val numbers = listOf(1, 2, 3)
val sum = numbers.fold(0) { acc, num -> acc + num }
println(sum) // 6
반응형
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 조건에 맞게 수열 변환하기 1 (0) | 2025.01.19 |
---|---|
[프로그래머스] 수열과 구간 쿼리 1 (0) | 2025.01.17 |
[프로그래머스] 할 일 목록 (0) | 2025.01.17 |
[프로그래머스] 5명씩 (0) | 2025.01.17 |
[프로그래머스] 홀수 vs 짝수 (0) | 2025.01.17 |