[백준] 1049 (파이썬)

Colacan·2022년 2월 23일
1

[백준]

목록 보기
38/43

오늘은 머신러닝 과제에 좀 빠져버려서 여유시간이 없었다. 따라서 오늘은 패턴을 유지하기 위한 그리디 알고리즘 문제를 하나 풀었다. 그리디 알고리즘은 많이 익숙해진 것 같아서 다행인 것 같다. 어떻게든 하루 1문제 이상을 풀어가도록 하자.

백준 1049번 기타줄

import sys
N,M = map(int,sys.stdin.readline().split())
list=[]
res = 0
for _ in range(M):
    pack,each = map(int,sys.stdin.readline().split())
    list.append([pack,each])
pack_list = sorted(list, key=lambda x : x[0])
each_list = sorted(list, key=lambda x : x[1])
# pack이 더 이득인 경우
if pack_list[0][0] <= each_list[0][1]*6:
    # pack을 사는게 남은 each 사는 것 보다 나은 경우
    if pack_list[0][0] < each_list[0][1] * (N % 6):
        res = pack_list[0][0] * ((N // 6)+1)
    else:
        res = pack_list[0][0] * (N // 6) + each_list[0][1] * (N % 6)
# each가 더 이득인 경우
else:
    res = each_list[0][1] * N
print(res)
profile
For DE, DA / There is no royal road to learning

0개의 댓글