읽기 전

  • 불필요한 코드나 잘못 작성된 내용에 대한 지적은 언제나 환영합니다.
  • 개인적으로 배운 점을 정리한 글입니다.

문제 링크

BOJ #2437 저울

문제 풀이

측정할 수 없는 무게의 최솟값이므로 주어진 추를 정렬하고 점차 무거운 추로 진행하면서 측정 가능 무게를 탐색해야 한다. 만약 최저값이 1보다 크면 1을 리턴하고 그게 아니면 측정불가 무게는 2로 시작한다. 그리고 매번 진행할 때마다 추가되는 무게가 현재 측정불가 무게 이하라면 현재 측정불가 무게에 더해 갱신한다. 만약 추가되는 무게가 크다면 현재 측정이 불가능한 무게는 계속 측정이 불가함을 의미하므로 그대로 리턴한다.

  • 추 배열 정렬
  • 첫 번째 추가 1보다 크면 1 리턴
  • 첫 번째 추에 대해 최소 측정불가 무게는 2부터 시작하며, 이후부터 추의 무게가 최소 측정불가 무게 이하라면 더하고 그렇지 않으면 리턴한다.

python 코드

import sys
input = sys.stdin.readline

def solve():
    N = int(input())
    nums = list(map(int, input().split()))
    nums.sort()
    if nums[0] > 1:
        return 1
    sol = 0
    for i in range(N):
        if sol == 0:
            sol = nums[i] + 1
            continue
        if nums[i] <= sol:
            sol += nums[i]
        else:
            return sol
print(solve())

'Algorithms > Baekjoon' 카테고리의 다른 글

BOJ #9345 디지털 비디오 디스크(DVDs)  (0) 2021.08.16
BOJ #2887 행성 터널  (0) 2021.08.12
BOJ #1202 보석 도둑  (0) 2021.08.12
BOJ #1107 리모컨  (0) 2021.08.10
BOJ #11051 이항 계수 2  (0) 2021.08.10

+ Recent posts