알고리즘 문제풀이
백준 1049 기타줄 Python 수학 그리디 실버4
아크몽
2024. 3. 18. 00:47
오답 코드
6 묶음을 하나 사는 것보다 낱개 6개를 사는게 더 싼 경우를 고려하지 않았음
if arr_6[0] >= (n % 6) * arr_1[0]:
sum_v = (n//6) * arr_6[0] + (n % 6) * arr_1[0]
else:
sum_v = (n//6 +1) * arr_6[0]
print(sum_v)
if arr_6[0] >= 6 *arr_1[0]
룰 추가해야 했다.
정답 코드
# 1049 기타줄 실버4
n, m = map(int,input().split())
arr_6 = []
arr_1 = []
for _ in range(m):
x,y = map(int,input().split())
arr_6.append(x) # 6개짜리
arr_1.append(y) # 1개 짜리
# print(arr_6 ,arr_1)
arr_6.sort()
arr_1.sort()
sum_v = 0
if arr_6[0] >= arr_1[0] * 6:
sum_v = n * arr_1[0]
elif arr_6[0] >= (n % 6) * arr_1[0]:
sum_v = (n//6) * arr_6[0] + (n % 6) * arr_1[0]
else:
sum_v = (n//6 +1) * arr_6[0]
print(sum_v)