본문 바로가기

Til

Til 24.03.18 프로그래머스 파이썬 - 코딩테스트 입문

>>옷가게 할인받기

 

# 10만 원 이상 사면 5%, 
# 30만 원 이상 사면 10%, 
# 50만 원 이상 사면 20%를 할인해줍니다.

 

# 오류코드
def solution(price):
    discount = 0
    answer = price - (price * discount)
   
    if price >= 100000:
        discount = 0.05
    elif price >= 300000:
        discount = 0.1
    elif price >=500000:
        discount =0.2
   
   
return answer
 

위의 코드처럼 할 경우 할인조건이 겹쳐서 원하는 결과 값이 안나올수 있음
if 문에서 제일 위에 값부터 돌기 때문에 조건이 겹침

-조건을 정확하게 평가해서 다시

 

# 오류코드
def solution(price):
    discount = 0
   
    if price >=500000:
        discount = 0.2
    elif price >= 300000:
        discount = 0.1
    elif price >= 100000:
        discount = 0.05
    else :
        discount = 0
   
    answer =price - (price * discount)
    return answer
       

거의 통과 되었는데 제출이 안됨

문제를 다시읽어 보니 

  • 소수점 이하를 버린 정수를 return합니다.

놓친부분이 있었음

정수만 살리는 함수 int 추가

 

 
def solution(price):
    discount = 0
   
    if price >=500000:
        discount = 0.2
    elif price >= 300000:
        discount = 0.1
    elif price >= 100000:
        discount = 0.05
    else :
        discount = 0
   
    answer =price - (price * discount)
    return int(answer)
 

 

드디어 통과 ~!!

 

문제를 잘 읽어보고 조건을 잘 파악해야 되겠다