최대 1 분 소요

문제 링크 : https://www.acmicpc.net/problem/17509

image



풀이 코드Permalink


from collections import defaultdict

time_dict = defaultdict(int)
penalty = 0

for _ in range(11):
    T, V = map(int, input().split())
    penalty += 20*V
    time_dict[T] += 1

time = 0
time_dict_sorted = dict(sorted(time_dict.items(), key=lambda x: x[0]))
while time_dict_sorted:
    keys = list(time_dict_sorted.keys())

    time += keys[0]
    time_dict_sorted[keys[0]] -= 1
    penalty += time
    if time_dict_sorted[keys[0]] == 0:
        del(time_dict_sorted[keys[0]])
print(penalty)



풀이 해설Permalink


문제를 보면 틀린 문제에 대한 패널티는 시간과는 무관함을 알 수 있기 때문에
입력과 동시에 패널티에 누적시키면 되고

시간 누적에 따라 패널티가 커지기 때문에
입력받은 시간에 대해 정렬을 먼저 해준다음 누적 연산을 하도록 풀었습니다

태그: ,

카테고리:

업데이트:

댓글남기기