728x90
반응형
https://www.acmicpc.net/problem/20546
20546번: 🐜 기적의 매매법 🐜
1월 14일 기준 준현이의 자산이 더 크다면 "BNP"를, 성민이의 자산이 더 크다면 "TIMING"을 출력한다. 둘의 자산이 같다면 "SAMESAME"을 출력한다. 모든 결과 따옴표를 제외하고 출력한다.
www.acmicpc.net
Money = int(input())
MachineDuck = list(map(int, input().split()))
# 준현
n_jusic=0
j_money = Money
for j in MachineDuck:
if j_money >= j:
n_jusic += j_money//j
j_money = j_money%j
# 성민
s_jusic = 0
s_money = Money
for i in range(3,len(MachineDuck)):
if (MachineDuck[i-3]>MachineDuck[i-2]) and (MachineDuck[i-2]>MachineDuck[i-1]) and (MachineDuck[i-1]>MachineDuck[i]):
if s_money >= MachineDuck[i]:
s_jusic += s_money//MachineDuck[i]
s_money = s_money%MachineDuck[i]
j_sum = j_money+n_jusic*MachineDuck[-1]
s_sum = s_money+s_jusic*MachineDuck[-1]
if j_sum > s_sum:
print("BNP")
elif j_sum < s_sum:
print("TIMING")
else:
print("SAMESAME")
"""
다른 사람 풀이 임: yuuforest.log
https://velog.io/@yuuforest/%EB%B0%B1%EC%A4%80-20546.-%EA%B8%B0%EC%A0%81%EC%9D%98-%EB%A7%A4%EB%A7%A4%EB%B2%95
"""
# 준현이 VS 성민이
Money = int(input()) # 초기 현금
MachineDuck = list(map(int, input().split())) # 1일부터 14일까지의 주가
# 준현이
money_bnp = Money
count_bnp = 0
# 성민이
money_timing = Money
count_timing = 0
for num, price in enumerate(MachineDuck):
# 준현
count_bnp += (money_bnp // price)
money_bnp %= price
# 성민
temp = MachineDuck[num:num+4]
if len(temp) < 4:
continue
if temp[0] < temp[1] < temp[2] < temp[3] and count_timing > 0: # 매도
money_timing += (count_timing * temp[3])
count_timing = 0
elif temp[0] > temp[1] > temp[2] > temp[3]: # 매수
count_timing += (money_timing // temp[3])
money_timing %= temp[3]
answer_bnp = money_bnp + count_bnp * MachineDuck[-1]
answer_timing = money_timing + count_timing * MachineDuck[-1]
if answer_bnp < answer_timing:
print("TIMING")
elif answer_bnp > answer_timing:
print("BNP")
else:
print("SAMESAME")
728x90
반응형
'취준이랄까.. > 코테' 카테고리의 다른 글
DFS 기본 코드 (0) | 2024.04.19 |
---|---|
bfs, dfs: 그래프 탐색 (0) | 2024.04.19 |
정렬(선택 정렬, 삽입 정렬) (0) | 2024.04.15 |
BFS (0) | 2024.04.15 |
DFS (0) | 2024.04.15 |