본문 바로가기
알고리즘/정렬

[Python] 백준 2437 저울

by JayAlex07 2023. 1. 11.

🧑‍💻 백준 2437 저울

Gold 2

null

 

주어진 저울 추의 무게들을 오름차순으로 정렬을 한다

그 저울 추들을 가지고 1부터 몇 번까지 무게를 측정할 수 있는지 구하는 것이다

  • 예를 들어 주어진 저울 추들로 1부터 20까지 무게를 측정할 수 있다. 그러면 답은 21이다. (21부터는 무게를 측정하기 어려우니깐)

 

문제 풀이

  • 먼저 주어진 리스트를 오름차순으로 정렬을 한다
  • target을 주어야 하는데, target은 1부터 시작한다.
    • 위에 예시처럼 1부터 20까지 무게를 측정할 수 있지만, 21부터는 측정하기 어려우니 20 + 1을 해야 해서 target을 1로 저장을 한다
  • 그리고 weight리스트를 순회를 한다
    • 여기서 target보다 순회하는 저울추가 더 크면 for문을 끝낸다
      • target보다 순회하는 저울추가 더 크면, 그 target의 값은 리스트 안에 사용하는 저울추들을 이용해 무게를 잴 수 없게 된다
      • 예) [2, 3, 4, 5] 가 있다 (target = 1)
        • 2는 target = 1보다 크다, 주어진 리스트에 있는 저울추들을 아무리 사용해도 1이라는 무게를 잴 수 없다
    • 저울추가 target과 크거나 같으면 target에 저울추의 무게를 더한다

 

코드

N = int(input())
weight = list(map(int, input().split()))

weight.sort()

target = 1

for w in weight:
    if target < w:
        break
    target += w


print(target)