관리 메뉴

솜씨좋은장씨

[BaekJoon] 25704번 : 출석 이벤트 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 25704번 : 출석 이벤트 (Python)

솜씨좋은장씨 2022. 10. 3. 15:45
728x90
반응형

👨🏻‍💻 문제 풀이

경태가 받은 출석 도장의 개수와 현재 쇼핑하려는 총 금액이 주어졌을때

경태가 최대한으로 할인받아 낼 수 있는 최소 금액을 구하는 문제입니다.

 

출석 도장의 개수에 따라 교환할 수 있는 할인 쿠폰의 종류가 달라진다.

  • 출석 도장 5개   → 500원 할인 쿠폰
  • 출석 도장 10개 → 10% 할인 쿠폰
  • 출석 도장 15개 → 2,000원 할인 쿠폰
  • 출석 도장 20개 → 25% 할인 쿠폰

먼저 위의 조건을 활용하여

경태가 할인 받을 수 있는 모든 할인 금액을 구하고 그 중 가장 큰 값을 구했습니다.

def get_sale_price(stamp_num, shop_price):
    sale_prices = []
    
    if stamp_num >= 5:
        sale_prices.append(500)
    if stamp_num >= 10:
        sale_prices.append(shop_price // 10)
    if stamp_num >= 15:
        sale_prices.append(2000)
    if stamp_num >= 20:
        sale_prices.append(shop_price // 4)
        
    return max(sale_prices) if sale_prices else 0

그 다음 구한 금액을 가지고 최종 정답을 구했습니다.

def attendance_event(stamp_num, shop_price):
    total_price = 0
    
    sale_price = get_sale_price(
        stamp_num=stamp_num, shop_price=shop_price
    )
    
    if shop_price - sale_price > 0:
        total_price = shop_price - sale_price
        
    return total_price

전체 코드는 아래를 참고해주세요.

👨🏻‍💻 코드 ( Solution )

def get_sale_price(stamp_num, shop_price):
    sale_prices = []
    
    if stamp_num >= 5:
        sale_prices.append(500)
    if stamp_num >= 10:
        sale_prices.append(shop_price // 10)
    if stamp_num >= 15:
        sale_prices.append(2000)
    if stamp_num >= 20:
        sale_prices.append(shop_price // 4)
        
    return max(sale_prices) if sale_prices else 0
        
    

def attendance_event(stamp_num, shop_price):
    total_price = 0
    
    sale_price = get_sale_price(
        stamp_num=stamp_num, shop_price=shop_price
    )
    
    if shop_price - sale_price > 0:
        total_price = shop_price - sale_price
        
    return total_price
    
    
if __name__ == "__main__":
    stamp_num = int(input())
    shop_price = int(input())
    
    print(attendance_event(stamp_num=stamp_num, shop_price=shop_price))
 

GitHub - SOMJANG/CODINGTEST_PRACTICE: 1일 1문제 since 2020.02.07

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

Comments