백준 # 17298 # 오큰수 (1) 썸네일형 리스트형 [백준/17298/파이썬] 오큰수 - stack 소스코드 k = int(input()) ocs = list(map(int,input().split())) answer = [-1] * k stack = [] for i in range (k): while stack and ocs[i] > ocs[stack[-1]]: answer[stack[-1]] = ocs[i] stack.pop() stack.append(i) print(*answer) 알고리즘 자기보다 큰 수를 찾지 못하는 경우는 -1을 갖게 되므로 초기 세팅을 -1 * k로 해준다. for문을 돌며 자기보다 큰 수를 발견하면 스택에 있는 인덱스를 answer[인덱스]에 그 숫자를 넣어준다. 3 5 2 7 이 입력 되었다고 생각을 해보자 0 1 2 3 1. 3을 비교하는데 3의 인덱스인 0을 스택에 .. 이전 1 다음