반응형
문제 출처: www.acmicpc.net/problem/2437
1 . 문제 접근 방식
- 무게 추를 오름차순 정렬한 뒤 합을 계속 계산해 나아가며 합과 무게 값을 비교해 나가면 쉽게 구할 수 있다.
2 . 내가 푼 코드
import sys
N = int(sys.stdin.readline())
# 무게 추들을 list형태로 입력받고 오름차순 정렬
w = sorted(list(map(int, sys.stdin.readline().split())))
sum = 1
# 정렬된 무게추 리스트를 돌며 처음부터 i까지의 무게 합과 추의 무게를 비교해보고
# 무게합이 작을 경우는 계속 값을 더하며 진행
# 무게합이 클 경우 멈추고 무게합에 1을 더해 반환
for i in range(N):
if sum >= w[i]:
sum += w[i]
else:
break
print(sum)
3 . 결과 및 느낀점
- 성공! 마지막 값에 1을 더해야 하기도 하고 처음부터 비교를 해야하기 때문에 sum을 1로 초기화 하는 것이 좋다.
출처: https://naekang.tistory.com/35 [주간비행]
반응형
'개인 공부 > Algorithm' 카테고리의 다른 글
[Baekjoon/백준] 10162번 Python (0) | 2021.04.08 |
---|---|
[개인공부] 알고리즘 공부 #4 (0) | 2021.04.08 |
[Baekjoon/백준] 2212번 Python (0) | 2021.04.07 |
[Baekjoon/백준] 2217번 Python (0) | 2021.04.07 |
[개인공부] 알고리즘 공부 #3 (0) | 2021.04.06 |