[프로그래머스 Lv.1] 예산

shin·2022년 11월 23일
0

CodingTest 문제 풀이

목록 보기
69/79

[프로그래머스 Lv.1] 예산

파이썬 언어 풀이

def solution(d, budget):
    answer = 0
    d.sort()
    if len(d) == 1:
        if d[0] <= budget:
            answer = 1
        else:
            answer = 0
    else:
        for i in range(len(d)):
            budget = budget - d[i]
            if budget < 0:
                break
            answer += 1
    return answer

자바 언어 풀이

import java.util.Arrays;

class Solution {
    public int solution(int[] d, int budget) {
        int answer = 0;
        Arrays.sort(d);
        if (d.length == 1)
            if (d[0] <= budget)
                answer = 1;
            else
                answer = 0;
        else
            for(int i = 0; i < d.length; i++){
                budget -= d[i];
                if (budget < 0)
                    break;
                answer += 1;
            }
        return answer;
    }
}

정렬 방식

Python

  • 오름차순 정렬 : arr.sort()
  • 내림차순 정렬 : arr.sort(reverse = True)

Java

  • 오름차순 정렬 : Arrays.sort(arr)
  • 내림차순 정렬 : Arrays.sort(arr, Collections.reverseOrder())
Integer[] d1 = Arrays.stream(d).boxed().toArray(Integer[]::new);
Arrays.sort(d1, Collections.reverseOrder());
  • 자바에서 내림차순 정렬을 수행하기 위해선 Int형 배열이 아니라 Integer형 배열로 변환하는 과정이 필요함
  • Integer형 배열로 변환이 되면 Collections.reverseOrder()를 사용해서 내림차순 정렬할 수 있음
d = Arrays.stream(d1).mapToInt(Integer::intValue).toArray();
  • 반대로 다시 Int형 배열로 되돌릴 수도 있음
profile
Backend development

0개의 댓글