본문 바로가기

study/문제 풀이

코드업 2001 그리디 문제 최소 대금

언어: 파이썬

 

링크: codeup.kr/problem.php?id=2001

 

최소 대금

입력은 5 행으로 이루어지며, 한 줄에 하나씩 양의 정수가 적혀있다. 1행의 정수는 첫 번째 파스타 가격이다. 2행의 정수는 두 번째 파스타 가격이다. 3행의 정수는 세 번째 파스타 가격이다. 4행

codeup.kr

 

문제: 입력은 5행으로 한줄에 하나씩 양의 정수가 들어온다. 1,2,3번재 숫자는 파스타의 가격, 4,5번째 숫자는 주스의 가격이다. 파스타와 주스 중 하나씩 골라 조합을 만드는데 그 중, 제일 저렴한 조합을 찾고 10% 더한 금액을 찾아 출력한다.

 

풀이:

  1. 들어오는 입력을 파스타 리스트와 주스 리스트로 나눈다.(또는 한 리스트에 담아도 된다.)
  2. 최소 금액 변수를 만들고 파스타 리스트와 주스 리스트의 각각 첫번째 값을 더해 변수를 초기화한다.
  3. 이중 for 문을 사용해 파스타 리스트의 원소와 주스 리스트의 원소를 각각 더해 나오는 가격을 모두 찾는다. 그러다 최소 금액 보다 작은 값이 나오면 그 값을 최소 금액에 할당한다.
  4. 이중 for 문이 종료되면 최소 금액에 1.1을 곱해 출력한다.

답:

pasta_price = []
juice_price = []
for i in range(3):
    pasta_price.append(int(input()))
for i in range(2):
    juice_price.append(int(input()))

min_price = int(pasta_price[0]) + int(juice_price[0])

for pasta in pasta_price:
    for juice in juice_price:
        if (pasta + juice) < min_price:
            min_price = pasta + juice

print("%.1f" %(min_price*1.1))