본문 바로가기
코딩테스트

[프로그래머스] n보다 커질 때까지 더하기

by liz_devel 2025. 1. 17.

🗒 문제


📝 나의 문제풀이

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

 

 

반응형