-
프로그래머스 - 예산알고리즘 2022. 7. 21.반응형
내 풀이
import java.util.Arrays; public class P_38 { public int solution(int[] d, int budget) { int answer = 0; int cost = 0; Arrays.sort(d); // 1 2 3 4 5 for(int i=0; i<d.length; i++) { if(cost + d[i] > budget) { // 원소 + 원소 > 예산 break break; } else { // 예산보다 작으면 cost에 저장 answer 회수 증가 cost += d[i]; answer++; } } return answer; } public static void main(String[] args) { // 예산 P_38 p = new P_38(); int[] d = {1,3,2,5,4}; int budget = 9; System.out.println(p.solution(d, budget)); } }
핵심은 배열을 정렬 하는 것.
작은 수 부터 큰 수가 있는 오름차순으로 정렬하게 되면
반복문이 작은 수 부터 돌기 때문에 계산이 가능해진다.
다른 사람 풀이
public int solution2(int[]d, int budget) { int answer = 0; Arrays.sort(d); for(int i=0; i<d.length; i++) { budget -= d[i]; // 예산에서 원소 빼기 (정렬을 했으니까 작은 수 부터 빼나가는 것) // 그러다 0 보다 작아지면 반복문 탈출 // 0보다 크다면 answer 카운트 증가 if(budget < 0) break; answer ++; } return answer; }
뺄셈을 이용하여 풀이한 모습.
어차피 예산을 가지고 계산하기 때문에 오름차순으로 정렬 후 예산에서 빼줘도 구할 수 있다.
반응형'알고리즘' 카테고리의 다른 글
프로그래머스 - 약수의 개수와 덧셈 (0) 2022.07.24 프로그래머스 - 3진법 뒤집기 (0) 2022.07.22 프로그래머스 - 두 개 뽑아서 더하기 (0) 2022.07.11 프로그래머스 - 비밀 지도 [2018 KAKAO BLIND RECRUITMENT] (0) 2022.07.06 프로그래머스 - 나머지가 1이 되는 수 찾기 (0) 2022.07.04