본문 바로가기

알고리즘/python

[python/파이썬] 백준 20546 기적의 매매법

반응형

[문제 출처]

https://www.acmicpc.net/problem/20546

 

20546번: 🐜 기적의 매매법 🐜

1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다.

www.acmicpc.net

 

[문제 풀이]

import sys
input = sys.stdin.readline

money = int(input())

price = list(map(int,input().split()))
price.insert(0,0)

up = 0 
down = 0
june_m = money
min_m = money
june_cnt = 0
min_cnt = 0
for i in range(1,14):
    june_buy = june_m // price[i]
    if june_buy > 0:
        june_m -= (june_buy * price[i])
        june_cnt = june_buy

    if i != 1:
        if price[i-1] > price[i]:
            down += 1
            up = 0
        elif price[i-1] < price[i]:
            down = 0
            up += 1
    
    if down == 3:
        min_buy = min_m // price[i]
        if min_buy > 0:
            min_m -= (min_buy * price[i])
            min_cnt = min_buy
    if up == 3:
        min_m += (min_cnt * price[i])
        min_cnt = 0

june_total = june_m + june_cnt * price[14]
min_total = min_m + min_cnt * price[14]

if june_total > min_total:
    print('BNP')
elif june_total < min_total:
    print('TIMING')
else:
    print('SAMESAME')
반응형