Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 | 
| 9 | 10 | 11 | 12 | 13 | 14 | 15 | 
| 16 | 17 | 18 | 19 | 20 | 21 | 22 | 
| 23 | 24 | 25 | 26 | 27 | 28 | 29 | 
| 30 | 
                            Tags
                            
                        
                          
                          - Baekjoon
 - 코딩테스트
 - 그리디알고리즘
 - JPA
 - 자바
 - 클린코드
 - 애자일기법
 - 알고리즘
 - kotlin
 - ES
 - 애자일프로그래밍
 - Java
 - API
 - Spring
 - 읽기쉬운코드
 - 스프링
 - 데이터베이스
 - 개발
 - cleancode
 - database
 - 코딩
 - 백준
 - spring boot
 - 코드
 - 개발자
 - 엘라스틱서치
 - 그리디
 - Elasticsearch
 - 프레임워크
 - framework
 
                            Archives
                            
                        
                          
                          - Today
 
- Total
 
튼튼발자 개발 성장기🏋️
[2437번] 저울 본문
반응형
    
    
    
  문제 기출 : [https://www.acmicpc.net/problem/2437]

풀이 방법
| 
 [그리디알고리즘] 접근 
 정답 비율이 37%라서 겁먹었지만 아주 쉬운 문제다. 
 최소값을 구하라고 했으니까 당연하게도 오름차순으로 정렬이 우선이다. 그래서 작은 무게의 추를 먼저 가지고 와서 체크를 할꺼다. 
 새로운 추를 가지고 왔는데 만약 이 새로운 무게가 저울의 (무게의 합 + 1)보다 크면 저울의 (무게의 합 + 1)이 최소값이 될 수 밖에 없다.  | 
문제 풀이
public class Main {
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int answer = 0;
		try {
			int N = Integer.parseInt(br.readLine());
			StringTokenizer tokens = new StringTokenizer(br.readLine(), " ");
			int[] weights = new int[N];
			
			int i = -1;
			
			while (tokens.hasMoreTokens()) {
				i++;
				weights[i] = Integer.parseInt(tokens.nextToken());
			}
			
			Arrays.sort(weights);
			
			for(int weight : weights) {
				if(answer + 1 < weight) {
					break;
				}
				answer += weight;
			}
			
			System.out.println(answer + 1);
            
		} catch (Exception e) {
			e.printStackTrace();
		} finally {
			try {
				br.close();
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
	}
}반응형
    
    
    
  'Business logic > 백준' 카테고리의 다른 글
| [1343번] 폴리오미노 (0) | 2020.04.22 | 
|---|---|
| [1543번] 문서검색 (0) | 2020.04.19 | 
| [2529번] 부등호 (0) | 2020.04.16 | 
| [2352번] 반도체 설계 (0) | 2020.04.15 | 
| [2217번] 로프 (2) | 2020.04.15 |