시작이 반

[백준] 20546번번 (python 파이썬) 본문

알고리즘/백준

[백준] 20546번번 (python 파이썬)

G_Gi 2021. 3. 24. 15:28
SMALL

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

 

구현 문제이다.

 

준현이는 현재 가진돈에서 주식을 살 수 있으면 살 수 있는 개수만큼 전량 매수하고 팔지 않는다.

 

성준이는 가격이 연속으로 3일 하락하면 해당 날에 주식을 전량 매수한다.

또한 가격이 연속으로 3일 상승하면 해당 날에 주식을 전량 매도한다.

 

마지막 날에 남은 돈과 주식을 갖고 있는 개수를 구하여 서로 비교한다.

 

money = int(input())
stocks = list(map(int,input().split()))


def jun():
    left_money = money
    stock_n = 0
    for stock in stocks:
        stock_n += left_money // stock
        left_money = left_money % stock
        if left_money == 0:
            break

    return left_money, stock_n

def sung():
    left_money = money
    stock_n = 0
    for i in range(len(stocks)-4):
        if stocks[i] < stocks[i+1] < stocks[i+2] < stocks[i+3]:
            left_money += stock_n * stocks[i+3]
            stock_n = 0

        if stocks[i] > stocks[i+1] > stocks[i+2] > stocks[i+3]:
            stock_n += left_money // stocks[i+3]
            left_money = left_money % stocks[i+3]

    return left_money, stock_n

jun_money, jun_stock = jun()
total_jun_money = jun_money + jun_stock * stocks[-1]
sung_money, sung_stock = sung()
total_sung_money = sung_money + sung_stock * stocks[-1]

if total_jun_money < total_sung_money:
    print('TIMING')
elif total_jun_money > total_sung_money:
    print('BNP')
else:
    print('SAMESAME')
LIST