코딍코딍
코딩기록
코딍코딍
전체 방문자
오늘
어제
  • 분류 전체보기 (271)
    • 개발 (2)
    • Java (1)
    • 스프링 (28)
    • JPA (11)
    • Git (3)
    • 알고리즘 (160)
      • 백준 (132)
      • 프로그래머스 (8)
      • SWEA (20)
    • 토이 프로젝트 (14)
      • 간단한 Springboot CRUD (1)
      • 게시판 프로젝트 (13)
    • 알고리즘 개념정리 (8)
    • 오류 해결 (13)
    • 보류 (0)
    • AWS (5)
    • 트러블 슈팅 (0)
    • 회고 (3)
    • CS (4)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

최근 글

티스토리

hELLO · Designed By 정상우.
코딍코딍

코딩기록

알고리즘/백준

2437번 : 저울

2022. 9. 15. 17:21

https://www.acmicpc.net/problem/2437

 

2437번: 저울

하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓

www.acmicpc.net

 

 

문제

 

 

코드

import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt(); sc.nextLine();

        int arr[] = new int[n];
        for(int i=0;i<n;i++) {
            arr[i] = sc.nextInt();
        }
        Arrays.sort(arr);
        
        int accumulate = 1;
        for(int i=0;i<n;i++) {
            if(accumulate<arr[i]) break;
            accumulate += arr[i];
        }
        System.out.println(accumulate);
    }
}

 

 

해결방법

문제를 어떻게 풀까 고민을 계속하다 결국 풀지 못하고 다른 사람의 풀이를 보았다. 참고

 

핵심은 기존 x~y까지 측정할 수 있다고 가정할 때 무게가 5인 추가 새로 들어오면 기존에 측정할 수 있었던 무게 + 5까지 측정할 수 있으므로 구간은 x~(y+5)로 변한다.

그렇다면 측정값의 최소는 어떻게 구할까? 현재 추들의 무게의 합보다 새로 들어온 추의 무게가 "더 큰 경우"에 현재 추들의 무게의 합이 최솟값이 된다. 왜냐하면 이어질 수가 없기 때문이다. 자세한 풀이는 참고링크를 통하면 볼 수 있다.

 

현재 추들의 무게의 초기값을 1로 설정한 이유는 측정할 수 없는 값의 최솟값은 측정 가능한 값보다 1 커야 하기 때문이다.

 

 

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

15904번 : UCPC는 무엇의 약자일까?  (0) 2022.09.19
8979번 : 올림픽  (0) 2022.09.18
1697번 숨바꼭질  (0) 2022.09.13
13164번 : 행복 유치원  (0) 2022.09.08
15903번 : 카드 합체 놀이  (0) 2022.09.07
    '알고리즘/백준' 카테고리의 다른 글
    • 15904번 : UCPC는 무엇의 약자일까?
    • 8979번 : 올림픽
    • 1697번 숨바꼭질
    • 13164번 : 행복 유치원
    코딍코딍
    코딍코딍
    ㅎ2

    티스토리툴바