백준 3015 오아시스 재결합 Python

Derhon·2023년 11월 16일
0
post-thumbnail

백준 3015 오아시스 재결합

나의 답

stack = []
res = 0

for i in range(int(input())):
    cur_height = int(input())
    while stack and stack[-1]['height'] < cur_height: #현재 키보다 작은 사람들
        res += stack.pop()['count']
    if not stack: #내가 제일 크네?
        stack.append({'count': 1, 'height': cur_height})
    elif stack[-1]['height'] == cur_height: #나랑 키 똑같은 놈 만남
        count = stack.pop()['count']
        res += count
        if stack:
            res += 1
        stack.append({'count': count + 1, 'height': cur_height})
    else: #나보다 키 큰놈 만남
        stack.append({'count': 1, 'height': cur_height})
        res += 1

print(res)

플레는 처음이라 상당히 어려웠다.
그냥 스택 문제라고 생각했는데 같은 키 사람들을 관리하는게...
다시 풀어봐야지

profile
🧑‍🚀 이사했어요 ⮕ https://99uulog.tistory.com/

0개의 댓글