PS

[백준/Python] (S3) Tax Rate Changed - 10233

MSHUN 2024. 3. 14.
반응형

Baekjoon Online Judge의 10233 Tax Rate Changed 문제의 Python 풀이입니다.

 

10233번: Tax Rate Changed

The input consists of multiple datasets. Each dataset is in one line, which consists of three integers x, y, and s separated by a space. x is the VAT rate in percent before the VAT-rate change, y is the VAT rate in percent after the VAT-rate change, and s

www.acmicpc.net

💻코드

import sys
input = sys.stdin.readline

while True:
    # x(변경 전 VAT), y(변경 후 VAT), s(변경 전 총 세후 가격)
    prev_vat_rate, new_vat_rate, total_after_tax_before = map(int, input().split())
    
    if prev_vat_rate == 0 and new_vat_rate == 0 and total_after_tax_before == 0:
        break
    
    # 최대 총 세후 가격을 저장할 변수를 초기화한다.
    max_total_after_tax_new = 0
    
    # 모든 가능한 물품 가격 조합에 대해 반복한다.
    for item1_price_before_tax in range(1, total_after_tax_before):
        for item2_price_before_tax in range(1, total_after_tax_before):
            # 조건에 맞는 물품 가격 조합인지 확인한다.
            if item1_price_before_tax + item2_price_before_tax + \
               (item1_price_before_tax * prev_vat_rate // 100) + \
               (item2_price_before_tax * prev_vat_rate // 100) == total_after_tax_before:
                # 새로운 VAT율을 적용한 세후 가격을 계산한다.
                item1_after_tax_new = item1_price_before_tax + (item1_price_before_tax * new_vat_rate // 100)
                item2_after_tax_new = item2_price_before_tax + (item2_price_before_tax * new_vat_rate // 100)
                # 가능한 최대 총 세후 가격을 업데이트한다.
                max_total_after_tax_new = max(max_total_after_tax_new, item1_after_tax_new + item2_after_tax_new)
    
    # 계산된 최대 총 세후 가격을 출력한다.
    print(max_total_after_tax_new)

🧠풀이

이 문제는 VAT(부가가치세)율이 변경된 후의 두 상품의 최대 가능 총 세후 가격을 찾는 것이다. 주어진 조건에 따라, 모든 가능한 두 상품의 세전 가격 조합을 탐색하여, 변경 전의 총 세후 가격이 일치하는 모든 조합을 찾는다. 각 조합에 대해 새로운 VAT율을 적용한 후, 가능한 최대 총 세후 가격을 계산한다. 이 과정에서 최대 값을 지속적으로 업데이트하며, 최종적으로 가능한 최대 총 세후 가격을 구한다.

🤔느낀 점

PyPy로 내야 통과한다... 잘못푼 것같은 기분이 들지만...

Baekjoon Online Judge

반응형

댓글