[백준/Python] 17608번 : 막대기

문제

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

풀이

sys.stdin.readline을 활용하지 않으니 시간 초과가 발생했다. 오른쪽을 기준으로 하나씩 막대기를 바라봤을 때 해당 막대기의 오른쪽보다 높이가 낮은 막대기는 보이지 않는다.

각 막대기를 ls 배열에 넣은 후 오른쪽부터 바라보기위해 reversed()를 활용하여 역순으로 정렬하였고, 가장 우측의 막대기부터 순서대로 살펴보며 높이 최솟값 min_h를 업데이트해주며 보일 수 있는 막대기의 수를 세어서 문제를 풀었다.

import sys
input = sys.stdin.readline

N = int(input())

ls = [int(input()) for _ in range(N)]

cnt = 0
min_h = 0

for h in reversed(ls):
    if h > min_h:
        cnt += 1
        min_h = h

print(cnt)