초보 개발자의 일기

1049번 기타줄 본문

백준

1049번 기타줄

판다꼬마 2022. 3. 11. 22:21
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