원래는 하루에 하나만 하려 했는데 하다보니 재밌어서 이어서 하나더 올리겠습니다.
문제
https://www.acmicpc.net/problem/5543
상근날드에서 가장 잘 팔리는 메뉴는 세트 메뉴이다. 주문할 때, 자신이 원하는 햄버거와 음료를 하나씩 골라, 세트로 구매하면, 가격의 합계에서 50원을 뺀 가격이 세트 메뉴의 가격이 된다.
햄버거는 총 3종류 상덕버거, 중덕버거, 하덕버거가 있고, 음료는 콜라와 사이다 두 종류가 있다.
햄버거와 음료의 가격이 주어졌을 때, 가장 싼 세트 메뉴의 가격을 출력하는 프로그램을 작성하시오.
입력은 총 다섯 줄이다. 첫째 줄에는 상덕버거, 둘째 줄에는 중덕버거, 셋째 줄에는 하덕버거의 가격이 주어진다. 넷째 줄에는 콜라의 가격, 다섯째 줄에는 사이다의 가격이 주어진다. 모든 가격은 100원 이상, 2000원 이하이다.
풀이
money = {}
burger = {}
drink = {}
for i in range(0, 5):
money[i] = int(input())
for n in range(0, 3):
burger[n] = money[n]
for z in range(3, 5):
drink[z] = money[z]
minBurger = min(burger.values())
minDrink = min(drink.values())
setPro = minBurger + minDrink - 50
print(setPro)
money, burger, drink를 딕셔너리 자료형으로 만들어줍니다.
첫 for문을 이용해 세 개의 버거값, 두 개의 음료 값을 입력해줍니다.
두 번째 for문에는 burger[0~2]에 money[0~2]에 들어있는 값을 넣어줍니다.
세 번째 for문은 drink[3~4]에 money[3~4]에 들어있는 값을 넣어줍니다.
예를 들어
800, 700, 900, 198, 330 이렇게 money 값을 입력해주면
burger에는 {0: 800, 1: 700, 2: 900}
drink에는 {3: 198, 4: 330} 이렇게 값이 들어갑니다.
minBurger, minDrink는 버거와 음료 중에서 가장 싼 값을 각각 저장합니다.
min()을 사용해 각각의 가장 싼 가격을 구해줍니다.
min()안에 min(burger) 이런 식으로 입력하면 딕셔너리의 키를 가져오기 때문에
min(burger.values()) 이렇게 입력해야 합니다.
setPro는 세트의 가격으로, 버거 값과 음료 값을 더한 것에서 50원을 빼줍니다.
마지막으로 세트 가격을 출력시켜줍니다.
결과
'IT > 알고리즘' 카테고리의 다른 글
1일 1알고리즘 - #6 (0) | 2020.05.15 |
---|---|
1일 1알고리즘 - #5 (0) | 2020.05.14 |
1일 1알고리즘 - #4 (0) | 2020.05.14 |
1일 1알고리즘 - #3 (0) | 2020.05.13 |
1일 1알고리즘 - #1 (0) | 2020.05.12 |
댓글