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
'Coding Test > BaekJoon_Python' 카테고리의 다른 글
백준 3673 <나눌 수 있는 부분 수열> Python (3) | 2024.09.07 |
---|---|
백준 2607 <비슷한 단어> Python (1) | 2024.01.27 |
백준 1967 <트리의 지름> Python (2) | 2024.01.23 |
백준 10282 <해킹> Python (2) | 2024.01.10 |
백준 3977 <축구 전술> Python (1) | 2024.01.05 |