문제 설명
머쓱이네 옷가게는 10만 원 이상 사면 5%, 30만 원 이상 사면 5%, 30만 원 이상 사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 떄, 지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
입출력 예
입출력 예 설명
입출력 예 #1
- 150,000원에서 5%를 할인한 142,500원을 return 합니다.
입출력 예 #2
- 580,000원에서 20%를 할인한 464,000원을 return 합니다.
내가 푼 풀이
def solution(price):
if price >= 100000 and price < 300000 :
return int(price * 0.95)
elif price >= 300000 and price < 500000:
return int(price * 0.9)
elif price >= 500000 :
return int(price * 0.8)
else :
return int(price)
-> 간단하게 if문을 활용하여 할인율 계산
다른사람 풀이
def solution(price):
discount_rates = {500000: 0.8, 300000: 0.9, 100000: 0.95, 0: 1}
for discount_price, discount_rate in discount_rates.items():
if price >= discount_price:
return int(price * discount_rate)
- discount_rates 변수명을 활용해서 금액에 따른 할인율 정의
- 반복문을 통하여 discount_rates 딕셔너리를 순회
- 조건문을 통하여 price가 discount_price 보다 크거나 같은지 확인
- 딕셔너리에서 가장 먼저 매칭되는 조건의 할인율을 적용(즉, 가장 큰 할인율이 적용됨)
간단하게 if문을 바로 떠올려서 풀었지만 다른식을 통하여 표현할 수 있는게 무궁구진한거 같다!
'Programmers > Python' 카테고리의 다른 글
Level 0 - 아이스 아메리카노 (1) | 2023.07.24 |
---|---|
Level 0 - 문자 반복 출력하기 (0) | 2023.07.23 |
Level 0 - 배열 원소의 길이 (0) | 2023.07.19 |
Level 0 - 배열 뒤집기 (0) | 2023.07.18 |
Level 0 - 피자 나눠 먹기 (1) (0) | 2023.07.18 |