반응형

 

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges

 

 

오름차순 정렬 후 누적합계가 budget 값 이하인 것만 추출

 

 

** Javascript

 

function solution(d, budget) {
    d.sort((a, b) => a - b);
    while(d.reduce((a, b) => a + b, 0) > budget) d.pop();
    return d.length;
}

 

효율성이 더 나은 건 아래

 

function solution(d, budget) {
    d.sort((a, b) => a - b);
    let total = 0;
    for (let i = 0; i < d.length; i++) {
        total += d[i];
        if (total > budget) return i;
    }
    return d.length;
}

 

 

** Python

 

def solution(d, budget):
    answer = 0
    for i, x in enumerate(sorted(d)):
        answer += x
        if answer > budget:
            return i
    return len(d)

 

 

 

** Java

 

import java.util.*;
class Solution {
    public int solution(int[] d, int budget) {
        Arrays.sort(d);
        int sum = 0;
        for (int i = 0; i < d.length; i++) {
            sum += d[i];
            if (sum > budget) return i;
        }
        return d.length;
    }
}

 

반응형

+ Recent posts