아직 계정이 없으신가요? 회원가입

Dev. Talk

금고털이 문제

회원사진wcomputer
61 views2022-05-13 14:32

안녕하세요.

금고털이 문제 질문드립니다.

테스트 케이스를 풀면 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) -10
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

근데 정답 제출을 하면 정답처리가 되네요..
혹시 질문에 나와있지 않는 추가 조건이 있는건지요?