프로그래머스 문제를 풀다가 아는 방식을 너무나도 잘 응용하신분이 있어서 들고왔다
10만 원 이상 사면 5%,
30만 원 이상 사면 10%,
50만 원 이상 사면 20%를 할인
구매한 옷의 가격 price가 주어질 때,
지불해야 할 금액을 return 하도록 solution 함수를 완성해보세요.
def solution(price):
if price >= 100000 and price < 300000:
price *= 0.95
if price >= 300000 and price < 500000:
price *= 0.9
if price >= 500000:
price *= 0.8
return int(price)
좀 더 효율적으로 만들 수 있었다 (500,000 부터 위에 있었다면 더 효율적이었을거임)
아무튼 이것을 dict와 반복문을 이용해서 풀 수 있다
def solution(price):
sale = {500000: 0.8 , 300000: 0.9, 100000 : 0.95, 0: 1}
for k,v in sale.items():
if price >= k:
answer = price * v
return int(answer)
sale
이런식으로 50만과 세일을 묶는다
for k ,v in sale.items():
반복하는데 items()를 사용함으로써 k는 500,000 v는 0.8이 호출 될 수 있도록 만듬
if price >= k:
price 가 k 보다 크거나 같다면
answer = price * v
주어진가격(price) * 세일값(v)
이런식으로 응용할 수 있다
딕셔너리나 items()는 해당블로그에서 리스트와 딕셔너리
https://velog.io/@gyeori/리스트와-딕셔너리 를 참고하면 됨