17298. 오큰수

jp·2021년 11월 6일
0

baekjoon

목록 보기
10/15

문제

코드

N = int(input())
As = list(map(int, input().split()))
res, stack = [-1]*N, [0]
for i in range(1, N):
    while stack and As[stack[-1]] < As[i]:
        # stack을 인덱스만 저장하는 용도로 씀
        res[stack.pop()] = As[i]
    stack.append(i)
print(*res)

풀이

결국 검색찬스 첨에 이중포문돌려서 풀었는데 시간제한을 보니까 1초인것이다... 아니 최대 백만개 들온다는데...
그렇게 쫄아서 제출도 못하고 다른방법 생각해보다가 어떻게 스택을 쓰지,,? 고민만 몇분.. 결국 검색찬스씀
스택을 이중 for를 대체하기 위해서 쓰는 방법이다
이런생각은 못해봐서 또 배워감여
기록 위해 오랜만에 블로그 쓰기~~

profile
응애 개발자지망생이 알고리즘에 고통받는 중

0개의 댓글