상상쓰

[백준] 저울 본문

Coding Test

[백준] 저울

상상쓰 2021. 6. 17. 00:50

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

 

2437번: 저울

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

www.acmicpc.net

 

재밌는 문제였다. 예를 들어 a1 <= a2 <= a3 <= ... <= an (a 는 양의 정수) 가 있다고 하자.

 

두 번째로 a1, a2, a3, ..., ak 로 1 부터 K 까지의 숫자를 표현할 수 있다고 하자. (K 가 최대이므로 K = a1 + a2 + a3 + ... + ak)

 

a(k+1) 이 (K + 1) 보다 작거나 같다면 1 부터 (K + a(k+1) + 1) 을 포함하고 또한, 두 정수 사이의 정수들을 다 표현할 수 있다. 반대로 크다면 (K + 1) 은 표현할 수 없는 수로 동시에 최소가 된다.

 

import sys

N = int(sys.stdin.readline())
weight = list(map(int, sys.stdin.readline().split()))
weight.sort()
sum = 0

for i in weight:
    if sum + 1 >= i:
        sum += i
    else:
        break

answer = sum + 1

print(answer)

 

'Coding Test' 카테고리의 다른 글

[프로그래머스] 스타 수열  (0) 2021.06.18
[프로그래머스] 도둑질  (0) 2021.06.17
[프로그래머스] 합승 택시 요금  (0) 2021.06.16
[백준] 뒤집기  (0) 2021.06.15
[백준] 행렬  (0) 2021.06.14
Comments