코딩테스트

[20230906] [Python] 옷가게 할인 받기

히그다스 2023. 9. 6. 19:37

 

 

하하 드디어 풀었다

어제 고민고민하다 결국 못풀었는데 오늘은 풀었다

 

 

 

 

문제를 잘 읽어야하는게 조건이 

 

  • 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

 

 

이렇게 웬수같던 문제 하나 해결

매일 조금씩 성장 중인 나 칭찬해

 

 


출처 : 프로그래머스