IT/알고리즘
프로그래머스 저울 문제 - Greedy
어센트
2020. 5. 10. 16:39
https://programmers.co.kr/learn/courses/30/lessons/42886
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
오랜만에 프로그래머스에서 문제를 풀었는데 효율성테스트에서 자꾸 오답이 나와서 결국 블로그를 참고하여 문제를 해결했다.. 덧셈의 법칙을 이용하면 쉽게 풀 수 있는 문제였다. 가장 작은 자연수 1부터 시작하여 모든 추를 순회하는데 추를 순회하는 과정에서 누적합보다 비교하는 추의 값의 크기가 더 크면 누적합에 해당하는 추의 무게를 구할 수 없기 때문에 그 값을 리턴해주는 방식으로 문제를 해결했다.
풀이
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package lv3;
import java.util.*;
public class 저울{
public static int solution(int[] weight) {
Arrays.sort(weight);
int ans = 1;
for(int i=0;i<weight.length;i++){
if(ans>=weight[i]){
ans+=weight[i];
}
else break;
}
return ans;
}
}
|
cs |