개발자 톡
연습문제 톡
금고털이
금고털이 문제
- 등록일
- 2022-05-13 14:32:43
- 조회수
- 1633
- 작성자
- wcomputer
안녕하세요.
금고털이 문제 질문드립니다.
테스트 케이스를 풀면 2개가 시간초과되어 오답처리가 되는데요.
여러번 시도 해봐도 잘 안풀리더라고요.
인터넷 검색을 해보니 아래와 같은 해답이 공유되어있더라구요.
import sys
w, n = input().split()
w, n = int(w), int(n)
plist = [0 for i in range(n+1)]
for i in range(n):
mi, pi = input().split()
mi, pi = int(mi), int(pi)
plist[pi] += mi
print(plist)
num, total = len(plist)-1, 0
while w>0:
if w < plist[num]:
total += (w * num)
w -= w
else:
total += num * plist[num]
w -= plist[num]
num -= 1
print(total)
근데 위 코드의 문제 점 중 하나가 금속의 kg당 가격이 금속의 개수보다 넘어가면 list의 range를 넘으므로
오답처리가 되어야 하거든요
예시)
100 5
10 1
20 4
30 10
40 2
50 1
근데 정답 제출을 하면 정답처리가 되네요..
혹시 질문에 나와있지 않는 추가 조건이 있는건지요?
#금고털이