[BOJ] 17298: 오큰수

이슬비·2022년 4월 27일
0

Algorithm

목록 보기
25/110
post-thumbnail

오늘 문제는 어제 leetcode에서 푼 문제랑 똑같았다 캬캬 그래서 뚝딱 뚜룩딱 하니까 풀렸다 ㅎㅎㅎ

17298: 오큰수

1. 내 풀이: 성공

import sys

N = int(sys.stdin.readline())
A = list(map(int, sys.stdin.readline().strip().split()))
stack = []
answer = [-1]*len(A)

for i, a in enumerate(A):
    while stack and a > A[stack[-1]]:
        index = stack.pop()
        answer[index] = A[i]
    stack.append(i)

for i in answer:
    print(i, end=" ")

근데 사실 leetcode 문제랑 너무 똑같아서 더 설명할 게 없다...
(leetcode 문제: https://velog.io/@drizzle0171/%EC%BD%94%ED%85%8C-%EC%8A%A4%ED%84%B0%EB%94%94-Week-2)

조금 다른 부분은 더 큰 수가 없으면 -1을 출력하라는 부분이었는데 이것도 초기 값을 모두 -1로 설정해주면 된다. 이 부분에서 조오금 헤매긴 했는데, 그래도 금방 답을 찾았다!

다른 풀이를 찾아보려 했으나... 대부분의 풀이가 이런 방식이고, 초기 설정 (stack이 아니라 deque을 쓴다든지)이 조금 다른 건 있어도 전체적인 프로세스는 똑같다 !...

그러므로 오늘의 알고리즘 세계(?)는 여기서 끝!

profile
정말 알아?

0개의 댓글