알고리즘/문제풀이

[Python] 백준 17608 "막대기_스택" 문제풀이

이손안나 2021. 9. 8. 16:57

import sys

# 막대기 개수를 입력받음
N = int(sys.stdin.readline()) #readline()사용

bar = list() #막대기들을 넣어줄 빈 리스트 선언

#입력받은 막대기 개수 만큼 리스트에 넣어준다.
for _ in range(N):
    data = int(sys.stdin.readline())
    bar.append(data)

count = 0 #보이는 막대기 개수
start = 0 #맨처음 비교하는 기준점

for i in range(1, N + 1):
    target = bar[-i]#맨 오른쪽부터 비교
    if (target > start): 
        #현재가 기준점 보다 크면 개수 증가
        count += 1
        start = target

print("갯수", count)

풀이과정

 

막대기들의 빈 리스트들을 선언 후

기준점을 0으로 잡고 막대기의 맨 오른쪽부터 역순으로 비교하여

크면 count를 증가시킨다. 

 

 

 

 

피드백

input 대신 readline()을 사용하여 시간을 단축한다.