본문 바로가기
Algorithm/BOJ

[백준] 2437번 - 저울 (파이썬)

by _temp 2022. 1. 31.

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

# 저울
import sys
input = sys.stdin.readline
N = int(input())
arr = list(map(int, input().split()))
arr.sort()

result = 0
sum = 0
for i in range(N):
    if sum+1 >= arr[i]:
        sum += arr[i]
    else:
        result = sum+1
        break

if result == 0:
    result = sum+1

print(result)

 

그리디

1. 저울의 무게를 담은 리스트를 정렬해준다

2. 현재까지의 무게의 합 + 1보다 다음에 리스트에 넣어줄 값이 더 크면 중간에 공백이 나오는 것을 이용

    - (sum+1) >= (다음무게) 이면, (현재까지의 무게의합) += (다음무게)

    - 더 크면 공백이 발생, result = (현재까지의 무게의합 +1)

3. 만약 result가 그대로 0이면, 중간에 공백이 없다는 뜻, result = sum + 1

4. result 출력