SW Expert Academy - D2 - 1859. 백만 장자 프로젝트
스택을 사용한 풀이
#1859 runtime error - 8/10
def test(a):
stack = []
maxnum = 0
for i in reversed(a):
if i>maxnum:
stack.append(i)
maxnum=i
else:
stack.append(0)
buy = 0
count = 0
sell = 0
for i in range(len(a)):
if stack.pop():
if buy != 0:
sell += a[i] * count - buy
buy = 0
count = 0
continue
buy += a[i]
count += 1
return sell
T = int(input())
for i in range(T):
N = int(input())
a = list(map(int, input().split()))
print('#{} {}'.format(i+1, test(a)))
런타임 에러 해결을 위해 반복문 하나로 끝내야겠다고 생각
T = int(input())
for test_case in range(1, T + 1):
N = int(input())
a = list(map(int, input().split()))
sell = 0
maxnum = a.pop()
for i in reversed(a):
if i>maxnum:
maxnum=i
else:
sell += maxnum - i
print('#{} {}'.format(test_case, sell))
'알고리즘' 카테고리의 다른 글
[BOJ] 1003. 피보나치 함수 / 파이썬 풀이 (0) | 2022.02.07 |
---|---|
[BOJ] 10826. 피보나치 수 4 / 파이썬 풀이 (0) | 2022.02.07 |
선택 알고리즘 파이썬 구현 (0) | 2021.07.31 |
퀵 정렬, 분할 알고리즘 파이썬 구현 (0) | 2021.07.29 |
[SWEA] 1926. 간단한 369 게임 파이썬 풀이 (0) | 2021.07.24 |