반응형
Notice
Recent Posts
Recent Comments
Link
관리 메뉴

짧은코딩

1049 기타줄 본문

코딩 테스트(Python)/백준, 프로그래머스

1049 기타줄

5_hyun 2022. 1. 16. 17:54
반응형

https://www.acmicpc.net/problem/1049

 

1049번: 기타줄

첫째 줄에 N과 M이 주어진다. N은 100보다 작거나 같은 자연수이고, M은 50보다 작거나 같은 자연수이다. 둘째 줄부터 M개의 줄에는 각 브랜드의 패키지 가격과 낱개의 가격이 공백으로 구분하여 주

www.acmicpc.net

 

내 풀이(맞음)

n, m = map(int, input().split())
p6 = []
p1 = []
for i in range(m):
    a, b = map(int, input().split())
    p6.append(a)
    p1.append(b)
p6.sort()
p1.sort()

if(n>=6):
    price1 = p6[0] * (n//6)
    price2 = price1
    price1 += p6[0]
    price3 = p1[0] * n
    
    n %= 6
    if(n > 0):
        price2 += p1[0] * n
    print(min(price1, price2, price3))
else:
    s1 = p1[0] * n
    s6 = p6[0]
    price = min(s1, s6)
    print(price)

p6 리스트엔 6개 패키지 가격을 넣고 p1엔 낱개 가격을 넣은 다음 오름차순으로 정렬한다. 그리고 끊어진 줄의 개수인 n이 6보다 크면 price1, price2, price3을 만든다. price1에는 끊어진 줄의 개수 보다 많이 사더라도 6개 패키지 가격으로 산 가격을 넣는다. price2에는 6개 패키지와 낱개를 같이 산 가격을 넣는다. price3에는 낱개로만 산 가격을 넣는다. 그리고 min 함수를 통해 최소 값을 출력한다.

만약 끊어진 줄의 개수가 6개보다 작으면 s1에 낱개로 산 가격, s2에 패키지로 산 가격을 넣고 비교해서 최소값을 출력한다.

반응형

'코딩 테스트(Python) > 백준, 프로그래머스' 카테고리의 다른 글

1715 카드정렬하기(heap 활용)  (0) 2022.01.18
2720 세탁소사장동혁  (0) 2022.01.17
1543 문서검색  (0) 2022.01.16
16953 A->B  (0) 2022.01.14
1439 뒤집기  (0) 2022.01.13
Comments