오랜만에 그리디 !
문제
끊어진 기타줄 N개와 M개의 기타 브랜드들이 주어지고
각 M개의 기타줄을 6개 패키지로 구매할때와 낱개로 구매할때 1개 가격이 주어진다.
모든 브랜드들을 고려해 가장 저렴하게 구매할 수 있는 가격을 출력하면 된다!
처음에 한 브랜드만 선택해야 한다 생각하고 구현했다가 틀리고,
패키지로만 구매하는 경우를 고려하지 않아 또 틀렸다!
풀이
if __name__ == '__main__':
N, M = map(int, input().split()) # N=끊어진줄, M=브랜드
minp = mins = 7000
ps = N // 6 #패키지
p = N % 6 #낱개
for i in range(M):
pak, sol = map(int,input().split())
minp = min(minp,pak)
mins = min(mins,sol)
tmp = min(minp*ps+mins*p, mins*N, minp*(ps+1))
print(tmp)
결과
반응형
'Problem Solving > BOJ' 카테고리의 다른 글
백준 2606: 바이러스 (Python, C++) - dfs (0) | 2022.03.20 |
---|---|
백준 1260: DFS와 BFS (Python, C++) (0) | 2022.03.19 |
백준 1026: 보물(Python) (0) | 2022.03.14 |
백준 1010: 다리놓기 (Python, 조합, math.comb()) (0) | 2022.03.14 |
백준 11399 : ATM (Greedy, Python, 정렬 조건 lambda) (0) | 2021.05.19 |