Coding Test/BaekJoon_Python

백준 17608 <막대기> Python

JunOnJuly 2024. 1. 24. 15:36
728x90

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

 

17608번: 막대기

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

www.acmicpc.net


pop 메서드를 사용하면 쉽게 풀 수 있습니다.


import sys
input = sys.stdin.readline


def solution(N, hs):
    # 카운트 / 맨 앞은 무조건 보임
    cnt = 1
    # 현재까지 가장 큰 길이
    max_height = hs.pop()
    # 순회
    while hs:
        # 마지막 길이
        last_height = hs.pop()
        # 현재 가장 큰 길이보다 마지막 길이가 작으면 패스
        if last_height <= max_height:
            continue
        # 가장 큰 길이보다 길면
        else:
            # 카운트 + 1
            cnt += 1
            # 가장 큰 길이 최신화
            max_height = last_height
    print(cnt)

   
N = int(input())
hs = [int(input()) for _ in range(N)]
solution(N, hs)

 

728x90