To Be Developer

[BackJoon] 1049. 기타줄 (Python) 본문

알고리즘/BackJoon

[BackJoon] 1049. 기타줄 (Python)

Jeff Hwang 2019. 6. 3. 23:07

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

 

1049번: 기타줄

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

www.acmicpc.net

N, M = list(map(int, input().split()))

m1 = 100000
m2 = 100000
res = None
for i in range(M):
    res = list(map(int, input().split()))
    m1 = min(m1, res[0]) # 패키지 최소값
    m2 = min(m2, res[1]) # 낱개 최소값

if N > 6 :# 끊어진 줄의 갯수가 6 초과인 경우
    remain = N % 6 # 6으로 나눈 나머지
    quotient = N // 6 # 6으로 나눈 몫
    # 최소 금액 패키지를 하나 초과 구매 case -> m1*((quotient)+1)
    # 최소 금액 패키지를 딱 맞게 구매 + 최소 낱개 금액 * N case -> m1*quotient + m2 * remain
    # 최소 낱개 금액 * N -> m2 * N
    res = [m1*((quotient)+1), m1*quotient + m2 * remain, m2 * N]
    if remain*m2 > m1 : # 나머지와 최소 낱개 곱이 m1 보다 큰 경우
        res = min(res[0:2])
    else :
        res = min(res)
else :
    res = min(m1, m2*N)
print(res)
        

https://github.com/yoonhoohwang/Algorithm/blob/master/BackJoon/1049.%20%EA%B8%B0%ED%83%80%EC%A4%84.py

 

yoonhoohwang/Algorithm

using Python, GoLang, Java. Contribute to yoonhoohwang/Algorithm development by creating an account on GitHub.

github.com