알고리즘/백준

[파이썬] BOJ_17608(막대기)

딱따구르리 2022. 11. 7. 15:27
728x90
반응형

문제

 

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

 

17608번: 막대기

아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로

www.acmicpc.net


 

해설

 

가장 뒤의 막대기는 항상 보여지기 때문에 cnt를 1로 초기화 해준다.

뒤부터 비교하면서 더 큰 막대기가 나오면 cnt를 +1해주고 비교값인 stick을 해당 막대기로 바꿔 비교해나간다.

이렇게 해야 큰 막대기 뒤에 가려지는 막대기들을 가려낼 수 있다.

 

 


코드

 

-파이썬

#백준 17608(막대기)
import sys
input = sys.stdin.readline

n = int(input())  #막대기 개수
lst = [int(input()) for _ in range(n)]
cnt = 1
stick = lst[-1]

for i in range(n-1, -1, -1):
    if lst[i] > stick:
        cnt += 1
        stick = lst[i]

print(cnt)
728x90
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[파이썬] BOJ_2231(분해합)  (0) 2023.05.23
[파이썬] BOJ_8958(OX퀴즈)  (0) 2023.05.21
[파이썬] BOJ_1212(8진수 2진수)  (0) 2022.08.13
[파이썬] BOJ_2745(진법 변환)  (0) 2022.08.12
[파이썬] BOJ_10866(덱)  (0) 2022.06.10