Coding Test/baekjoon

[백준 2493] 탑 - python (solved.ac - 골드 5)

조용장 2022. 6. 30. 16:00

https://www.acmicpc.net/problem/2493

 

2493번: 탑

첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1

www.acmicpc.net

풀이

문제를 보았을 때 알 수 있는 힌트

스택을 이용하여 풀수있는 단순한 문제였다. 다만 구현하면서 어떻게 구현을 해야하는지 생각을 많이 해야해서 골드 5이지 않을까 생각이 든다.

import sys

input= sys.stdin.readline

n = int(input())

n_list = list(map(int,input().split()))
stack=[]
result = [0]*n

for i in range(n):
    v= n_list[i]
    while stack and n_list[stack[-1]]<v:
        stack.pop()
    if stack:
        result[i]=stack[-1]+1
    stack.append(i)
print(*result)

https://github.com/dydwkd486/coding_test/blob/main/baekjoon/baekjoon2493.py

 

GitHub - dydwkd486/coding_test: 코딩테스트 공부한 내용 정리

코딩테스트 공부한 내용 정리. Contribute to dydwkd486/coding_test development by creating an account on GitHub.

github.com