본문 바로가기
IT/알고리즘

프로그래머스 저울 문제 - Greedy

by 어센트 2020. 5. 10.

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

 

'IT > 알고리즘' 카테고리의 다른 글

프로그래머스 괄호변환  (0) 2020.05.16
프로그래머스 큰 수 만들기  (0) 2020.05.14
백준11053 가장 긴 증가하는 부분수열  (1) 2020.05.08
백준 2156 포도주시식  (0) 2020.05.05
백준10844 쉬운 계단 수  (0) 2020.05.04