프로그래밍/백준

[알고리즘] 백준 17450 파이썬 - 과자 사기

매 석 2022. 10. 9. 16:15
반응형

문제

남서네 집 앞 편의점에는 각각 S, N, U의 이름이 붙은 총 3가지의 과자를 판다. 진열대에는 한 봉지당 가격과 무게가 안내되어 있다. 같은 종류의 과자끼리는 봉지의 무게가 똑같다.

남서는 오늘 과자를 10봉지 사려고 한다. 편의점의 단골인 남서는 할인 쿠폰 하나를 가지고 있는데, 총 구매 금액이 5,000원 이상일 때 500원을 깎아 주는 쿠폰이다. 구매 금액이 5,000원 미만인 경우에는 할인 쿠폰을 쓸 수 없다. 또한 할인을 여러 번 적용할 수는 없다.

남서는 과자를 고를 때 가성비를 중요하게 생각한다. 남서가 생각하는 가성비란, 총 무게를 총 금액으로 나눈 값이다. 남서는 빨리 과자가 먹고 싶기 때문에, 한 종류의 과자만을 10봉지 골라 사 가려고 한다. 또, 다른 물건은 구매하지 않을 생각이다.

가성비를 다시 한 번 수학적으로 표현하면 다음과 같다.

가성비 = 과자 10봉지의 무게의 합쿠폰 사용을 고려했을 때 과자 10봉지를 사는 데 필요한 돈

진열대를 들여다 보던 남서는 신기하게도 세 과자의 가성비가 모두 서로 다르다는 사실을 깨달았다.

남서는 어떤 과자를 사게 될까?

문제풀이

s1,s=map(int,input().split())
n1,n=map(int,input().split())
u1,u=map(int,input().split())
S=(s*10)/(10*s1-500 if 10*s1>=5000 else 10*s1)
N=(n*10)/(10*n1-500 if 10*n1>=5000 else 10*n1)
U=(u*10)/(10*u1-500 if 10*u1>=5000 else 10*u1)
if(max(S,N,U)==S):
    print("S")
elif(max(S,N,U)==N):
    print("N")
else:
    print("U")

- S, N, U는 각각 s,n,u의 가성비 값이다.

- 가장 큰 가성비 값을 가진 변수를 출력해준다.