Cute Dog Bopping Head
본문 바로가기
Code IT/Algorithm

[구름LEVEL] 뒤통수가 따가워 (Python) - stack

by 찾 2023. 2. 5.


input()
#초기화
answer = '0'
ppl = list(map(int, input().split()))
stack = [ppl[0]]

for i in range(1, len(ppl)):
	p = ppl[i]
	cansee = 0 #볼 수 있는 신선의 수
	
	while stack and stack[-1]<=p: #현재 봉우리보다 작은 봉우리들을 스택에서 제거
		stack.pop()
		cansee += 1 # 작은 봉우리들은 현재 봉우리의 신선을 볼 수 있으므로
	cansee += len(stack) # 스택에 남은 봉우리 = 현재 봉우리보다 큰 봉우리들 = 현재 봉우리를 볼 수 있음
	stack.append(p)
	answer += ' '+str(cansee)
print(answer)

봉우리 ?

보자마자 이건 스택이다... 라고 생각했다

높이가 떨어졌을 때를 알아내기 / 높아지는 길이 찾기 / 줄어드는 기간 찾기 등등은 모두 스택으로 구현하는 건가봐

 

오늘의 알고리즘 풀이 끗

댓글