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
'Coding Test > baekjoon' 카테고리의 다른 글
[백준 9375] 패션왕 신해빈 - python (solved.ac - 실버 3) (0) | 2022.07.02 |
---|---|
[백준 11404] 플로이드 - python (solved.ac - 골드 4) (0) | 2022.07.01 |
[백준 2565] 전깃줄 - python (solved.ac - 골드 5) (0) | 2022.06.29 |
[백준 2294] 동전 2 - python (solved.ac - 골드 5) (0) | 2022.06.28 |
[백준 15686] 치킨 배달 - python (solved.ac - 골드 5) (0) | 2022.06.26 |