🔅코딩테스트 공부🔅/❗백준
[백준] 20546번 🐜 기적의 매매법 🐜(python)
윤무무
2023. 4. 13. 00:11
https://www.acmicpc.net/problem/20546
20546번: 🐜 기적의 매매법 🐜
1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다.
www.acmicpc.net
1. 난이도 실버 5
2. 내가 작성한 코드
import sys
input = sys.stdin.readline
n = int(input().rstrip()) #주어진 돈
chart = list(map(int, input().rstrip().split())) #주식 정보
BNP = [n, 0] #준현 돈, 주식 수
TIMING = [n, 0] #상민 돈, 주식 수
for i in range(len(chart)): #준현
BNP[1] += (BNP[0] // chart[i]) #살 수 있는 만큼 사기
BNP[0] -= (BNP[0] // chart[i] * chart[i]) #주식 사고 남은 돈
for i in range(11): #성민
check = chart[i:i+4]
check_up = 0
check_down = 0
for j in range(3):
if check[j+1] > check[j]: #상승 체크
check_up+=1
if check[j+1] < check[j]: #하락 체크
check_down+=1
if check_down == 3: #3일 연속 상승이면 전량매수
TIMING[1] += (TIMING[0] // chart[i+3])
TIMING[0] -= (TIMING[0] // chart[i+3] * chart[i+3])
elif check_up == 3: #3일 연속 하락이면 전량매도
TIMING[0] += (TIMING[1] * chart[i+3])
TIMING[1] = 0
BNP = chart[13] * BNP[1] + BNP[0] #준현 총 금액
TIMING = chart[13] * TIMING[1] + TIMING[0] #성민 총 금액
if BNP>TIMING:
print("BNP")
elif BNP < TIMING:
print("TIMING")
else:
print("SAMESAME")