알고리즘/[python] 백준 BOJ
[python] 백준 2437 저울
Alan_Kim
2023. 3. 11. 16:00
728x90
반응형
https://www.acmicpc.net/problem/2437
2437번: 저울
하나의 양팔 저울을 이용하여 물건의 무게를 측정하려고 한다. 이 저울의 양 팔의 끝에는 물건이나 추를 올려놓는 접시가 달려 있고, 양팔의 길이는 같다. 또한, 저울의 한쪽에는 저울추들만 놓
www.acmicpc.net
문제 해결
- 추를 작은 것 부터 놓으면서 넘어가는 수를 찾아야한다.
- 처음에는 추를 안올려 놓으면 [0,0] 측정 가능하다는 것을 알음
- 1인 추를 올려 놓으면 [0,1] 측정 가능하다는 것을 알음
- 2인 추를 올릴려 할 때 현재 max값 1에서 현재 min값 0+2 까지 1칸 차이기 때문에 연속적이라는 것을 알음
- 따라서 2를 올려 놓으면 [0,3] 측정 가능하다라는 것을 알음
- 5인 추를 올려 놓으려 할 때 현재 max값 3에서 현재 min값 0+5를 올려 놓으면 2칸 차이기 때문에 4에서 구멍이 생긴다는 것을 알음
- 따라서 (3+1=4)이란 답을 찾을 수 있다.
CODE
n = int(input())
A = list(map(int, input().split()))
A.sort()
target = [0,0] # 현재 범위
for i in range(len(A)):
target_new = [target[0]+A[i],target[1]+A[i]] # A[i]로 인한 새로운 범위
if target_new[0] >target[1] +1: # 1칸 차이 이상 나게 되면 불연속 발생!
break
else:
target = [target[0], target_new[1]]
print(target[1]+1)
728x90
반응형