티스토리 뷰
문제 설명
머쓱이네(머쓱타드╰(*°▽°*)╯) 옷가게는 10만 원 이상 사면 5%, 30만 원 이상사면 10%, 50만 원 이상 사면 20%를 할인해줍니다. 구매한 옷의 가격 price가 주어질 때, 지불해야할 금액을 return 하도록 solution 함수를 완성해보세요.
제한사항
- 10 ≤ price ≤ 1,000,000
- price는 10원 단위로(1의 자리가 0) 주어집니다.
- 소수점 이하를 버린 정수를 return합니다.
입출력 예
price | result |
150,000 | 142,500 |
580,000 | 464,000 |
입출력 예 설명
입출력 예 #1
- 150,000원에서 5%를 할인한 142,500원을 return 합니다.
입출력 예 #2
- 580,000원에서 20%를 할인한 464,000원을 return 합니다.
나의 풀이
Python
if문을 사용할 줄 아느냐라고 묻는 문제 같아서 아래와 같이 풀었다.
def solution(price):
if price < 100000:
return price
elif price >= 100000 and price < 300000:
return int(price - price * 0.05)
elif price >= 300000 and price < 500000:
return int(price - price * 0.1)
elif price >= 500000 and price <= 1000000:
return int(price - price * 0.2)
Sehyeon Jeong라는 분이 Dictionary를 사용해 기깔나게 푼걸 보고 박수를 쳤다.
# Sehyeon Jeong님의 풀이
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)
solution이라는 함수에 price라는 매개변수:
discount_rates라는 딕셔너리를 선언하고 키와 값을 정해준다. 이때 500000은 20%할인한 0.8 300000은 10% 할인한 0.9 100000은 5% 할인한 0.95 0은 할인이 없으니 1로 키와 값을 정해준다.
반복문을 discount_price와 discount_rate를 discount_rates.items()의 범주에서 돌린다.
-> .items()는 키와 값의 쌍을 얻을 수 있는 함수이기 때문에 딕셔너리 discount_rates의 키들은 discount_price가 되고 값들은 discount_rate가 된다.
만약 매개변수 price가 discount_price(500000, 300000, 100000, 0)보다 크거나 같다면 price 곱하기 discount_rate(0.8, 0.9, 0.95, 1)을 반환한다.
정말 대단한 코드이다. 👏👏👏👏👏👏👏👏👏👏
프로그래머스에서 푼 문제를 복습하는 공간입니다.
https://programmers.co.kr/
'프로그래머스 코딩테스트' 카테고리의 다른 글
[JavaScript] 문자 반복 출력하기 (0) | 2023.02.23 |
---|---|
[Python, JavaScript, Java] 숫자 찾기 (0) | 2023.02.06 |
- Total
- Today
- Yesterday
- Python
- 프로그래머스
- 반복문
- method
- padding
- CSS
- em
- CSS 포지션
- Typescript
- Type
- 자바스크립트
- html
- HTML 기본
- Object
- 객체
- 타입 좁히기
- 메서드
- Margin
- 파이썬
- Array
- 타입스크립트
- function
- 동기코딩
- 실수
- if문
- css position
- javascript
- for문
- 함수
- html table
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |