초보 개발자의 일기
1049번 기타줄 본문
728x90
https://www.acmicpc.net/problem/1049
내 풀이
a,b=map(int, input().split())
multi_list=list()
single_list=list()
for i in range(b):
z,y=(map(int, input().split()))
multi_list.append(z)
single_list.append(y)
c=min(multi_list)
d=min(single_list)
result=0
if c>d*6:
result=d*6
elif c<(a%6)*d:
result=c*(a//6)+c
else:
result=c*(a//6)+d*(a%6)
print(result)
해결 방법
경우의 수를 3가지로 나누어 생각했다.
1번:
6개짜리 패키지가 각각의 낱개를 살 때보다 가격이 비싸면
낱개로만 사면된다.
2번:
6개까지 패키지의 가격이 6개짜리 묶음을 사고 남는 나머지*낱개의 가격보다 싼 경우
패키지를 사고 남는 낱개도 패키지를 하나 더 산다.
3번:
나머지 경우
패키지를 사고 남는 낱개는 낱개로 산다.
구글 풀이
n,m=input().split(' ')
n=int(n)
m=int(m)
c=list()
d=list()
for i in range(m):
a,b=input().split(' ')
c.append(int(a))
d.append(int(b))
e=min(c)
f=min(d)
if e<f*6:
if e <(n%6)*f:
print((n//6)*e+e)
else:
print((m//6)*e+(n%6)*f)
elif e>=f*6:
print(n*f)
느낀 점
어렵다ㅜㅜ
728x90
'백준' 카테고리의 다른 글
5585번 거스름돈 (5) | 2022.03.13 |
---|---|
10162번 전자레인지 (0) | 2022.03.13 |
1541번 잃어버린 괄호 (1) | 2022.03.09 |
2720번 세탁소 사장 동혁 (1) | 2022.03.09 |
2864 5와 6의 차이 (0) | 2022.03.08 |