jyamethyst21 님의 블로그

백준 25704번 - '출석 이벤트' (PYTHON 풀이) 본문

CODING 💻

백준 25704번 - '출석 이벤트' (PYTHON 풀이)

jyamethyst21 2026. 4. 2. 11:45

문제:

 

출석 도장과 물건의 가격이 주어질 때, 할인이 적용된 후 지불할 금액을 출력하는 문제이다.

이때 출력값은 음수가 되지 않아야한다는 점을 유의해야 한다.(할인 금액이 물건의 가격보다 더 큰 경우 0원 출력)

 

풀이:

n = int(input())
p = int(input())

prices = [p]

if n >= 5:
    prices.append(p - 500)

if n >= 10:
    prices.append(p * 90 // 100)

if n >= 15:
    prices.append(p - 2000)

if n >= 20:
    prices.append(p * 75 // 100)

print(max(0, min(prices)))

n, p에 각각 값을 입력받고 prices 리스트를 선언한다. 해당 리스트에 지불할 금액을 우선 넣었는데 그 이유는, 도장이 5개보다 적은 경우는 할인을 못 받고 지불 금액을 그대로 출력해야 하기 때문이다.

그 후 n(도장 개수)을 주어진 조건과 비교해서 계산한 뒤 prices 리스트에 추가한다. 또한, 소수점 방지 차원에서 // 을 사용하였다.

이렇게 각 조건에 맞게 계산한 뒤 모두 prices에 넣으면 할인이 적용되거나 아예 적용되지 않은 값들이 들어가 있을 것이다.

 

마지막으로 prices에서 가장 싸게 살 수 있는 가격을 출력해야 하므로 min을 활용해서 값을 구하고 최솟값이 0보다 작아지지 않게 막기 위하여 max를 써서 값을 바로 출력하였다.