하하 드디어 풀었다
어제 고민고민하다 결국 못풀었는데 오늘은 풀었다
문제를 잘 읽어야하는게 조건이
- 10 ≤ price ≤ 1,000,000
- price는 10원 단위로(1의 자리가 0) 주어집니다.
- 소수점 이하를 버린 정수를 return합니다.
이거 두개인데 두번째거가 눈에 안들어와서 몰랐다...
근데 방금 눈에 들어와서 풀었음 !!!
계속 이 코드에서 진전이 없었다 (이 코드도 부끄럽긴함... ㅎ)
처음에는 좀 더 단순했는데 자꾸 틀리니까 조건보면서 추가하다보니 조잡해졌다
def solution(price):
if price >= 10 and price < 100000:
return price
elif price >= 100000 and price < 300000 :
return price*0.95
elif price >= 300000 and price < 500000:
return price*0.9
elif price >= 500000 and price <= 1000000 :
return price*0.8
코드 실행하면 통과였는데
채점하기에서 사람 환장하게 만든다
딱 두개 때문에 통과가 안됐었다
미쳐부러...
근데 이제
- 소수점 이하를 버린 정수를 return합니다.
이게 눈에 들어오면서 악! 한거지
풀면서도 이게 아닌데 좀 더 쉬운 코드가 있을텐데 싶긴 했는데 여튼 풀어서 다행이고
더 이쁘게 푸는 건 좀 더 익숙해지고 난 다음에....
이거 10점이나 주는거 보니까 꽤나 어려운 문제였나본데 ? 싶었다
def solution(price):
if price >= 10 and price < 100000:
return price
elif price >= 100000 and price < 300000 :
return int(price*0.95)
elif price >= 300000 and price < 500000:
return int(price*0.9)
elif price >= 500000 and price <= 1000000 :
return int(price*0.8)
~ 다른 사람코드 감상 시간 ~
이 코드 진짜 예술이다
깔끔 그 자체
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)
내거랑 비슷한데 int()를 한번만 쳤다
def solution(price):
if price>=500000:
price = price *0.8
elif price>=300000:
price = price *0.9
elif price>=100000:
price = price * 0.95
return int(price)
좀 길긴한데 이렇게 하고 싶긴 했다
def solution(price):
return int(price*0.8) if price>=500000 else int(price*0.9) if price>=300000 else int(price*0.95) if price>=100000 else price
이렇게 웬수같던 문제 하나 해결
매일 조금씩 성장 중인 나 칭찬해
출처 : 프로그래머스
'코딩테스트' 카테고리의 다른 글
[프로그래머스] [SQL] 경기도에 위치한 식품창고 목록 출력하기 (0) | 2023.09.08 |
---|---|
[프로그래머스] [SQL] 12세 이하인 여자 환자 목록 출력하기 (0) | 2023.09.07 |
[20230905] [SQL] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2023.09.05 |
[프로그래머스] [SQL] 조건에 맞는 도서 리스트 출력하기 (0) | 2023.09.04 |
[20230902] [Python] 접미사인지 확인하기 (1) | 2023.09.02 |