2021.09.27 코드
money = int(input())
array = list(map(int, input().split()))
# 준현
def BNP(money, array):
count = 0 # 주식 수
for today in range(len(array)):
temp = money // array[today]
money -= temp * array[today]
count += temp
money += count * array[-1]
return money
# 성민
def TIMING(money, array):
up_cnt = 0 # 상승 연속체크
down_cnt = 0 # 하락 연속체크
count = 0 # 주식 수
for today in range(1, len(array)):
temp = money // array[today] # 살 수 있는 주식의 수
if array[today - 1] < array[today]: # 주가 상승
down_cnt = 0
up_cnt += 1
if up_cnt >= 3: # 전량 매도
money += count * array[today]
count = 0
continue
if array[today - 1] > array[today]: # 주가 하락
up_cnt = 0
down_cnt += 1
if down_cnt >= 3: # 전량 매수
money -= temp * array[today]
count += temp
money += count * array[-1]
return money
h = BNP(money, array)
s = TIMING(money, array)
if h > s:
print("BNP")
elif h == s:
print("SAMESAME")
else:
print("TIMING")
money = int(input())
array = list(map(int, input().split()))
# 준현이는 무조건 매수, 그리고 안 판다.
# 성민이는 33 매매법, 현금>주가, 3일 연속 가격이 상승하면 전량 매도, 전날과 오늘날 주가 동일하면 판매x
# 3일 연속 하락하는 건 즉시 주식을 전량매수,
# 1월 14일의 자산 : 현금 + 1월 14일의 주가 * 주식 수
hyeon = money
hyeon_cnt = 0
sung = money
sung_cnt = 0
up = 0 # 가격상승 횟수 세기 위한 변수
down = 0 # 가격하락 횟수 ...
입력값 받아오고,
준현이의 돈과 주식 수량은 hyeon, hyeon_cnt로 정의.
상민이의 돈과 주식 수량은 sung, sung_cnt로 정의
up과 down은 33매매법을 위한 변수
# 준현이의 매수매도
for i in array:
if i > hyeon:
continue
else:
hyeon_cnt += hyeon // i
hyeon = hyeon % i
준현이는 BAP 매매법으로,
사고나서 절대 팔지 않는다.
따라서 상민이보다 계산하기 훠얼쓉다아!
주가보다 가지고 있는 돈이 많을 때만 매수를 한다.
# 성민이의 매수매도
for i in range(len(array) - 1):
if array[i] > array[i + 1]: # 만약 값이 하락했다면, 매수
if up > 0:
up = 0
down += 1
else:
down += 1
if down >= 3 and sung // array[i + 1] > 0:
sung_cnt += sung // array[i + 1]
sung = sung % array[i + 1]
elif array[i] < array[i + 1]: # 만약 값이 상승했다면, 매도
if down > 0:
down = 0
up = 1
else:
up += 1
if up >= 3 and sung_cnt > 0:
sung += sung_cnt * array[i + 1]
sung_cnt = 0
else: # 값이 같다면, 초기화 시킨다.
down = 0
up = 0
상민이의 매수매도를 구하느라 좀 힘겨웠따..
(리스트 인덱스 땜시 매번 헤맨다)
값이 3회연속 하락하면 매수를
값이 3회 연속 상승하면 매도를!
만약 값이 같다면 다시 리셋!
if sung + sung_cnt * array[-1] > hyeon + hyeon_cnt * array[-1]:
print("TIMING")
elif sung + sung_cnt * array[-1] < hyeon + hyeon_cnt * array[-1]:
print("BNP")
else:
print("SAMESAME")
출력값!
'여니의 취준 준비 > 코딩테스트 (Python)' 카테고리의 다른 글
[Python] n14467 | 소가 길을 건너간 이유 1 (0) | 2021.04.29 |
---|---|
[Python] n1913 | 달팽이 (0) | 2021.04.29 |
[Python] n5597 | 과제 안 내신 분..? (0) | 2021.04.27 |
[Python] n20053 | 최소, 최대 2 (0) | 2021.04.27 |
[Python] n1212번 | 8진수 2진수 (0) | 2021.04.26 |