[Python][백준 17608] 막대기

Date:     Updated:

카테고리:

태그:

📏 막대기 문제 풀이

백준 17608번 막대기 문제의 파이썬 풀이

📝 문제 설명

Image

💡 풀이

이 문제는 스택의 개념을 활용하여 해결할 수 있다. 오른쪽에서 봤을 때 보이는 막대기는 자신의 오른쪽에 있는 모든 막대기보다 큰 막대기이다. 따라서 오른쪽부터 순회하면서 현재까지의 최대 높이보다 큰 막대기를 찾으면 된다.

🔍 코드 설명

  1. 막대기의 개수 n을 입력받는다.
  2. 각 막대기의 높이를 입력받아 리스트에 저장한다.
  3. 오른쪽부터 순회하면서:
    • 현재 막대기가 최대 높이보다 크면 카운트를 증가시키고 최대 높이를 갱신한다.
  4. 보이는 막대기의 개수를 출력한다.

✨ 참고

  • 파이썬의 리스트를 스택처럼 사용할 수 있다.

📝 코드

n = int(input())
bar_stack = []
count = 0
max_height = 0

for _ in range(n):
    bar_stack.append(int(input()))

while bar_stack:
    height = bar_stack.pop()
    if height > max_height:
        count += 1
        max_height = height

print(count)

Python Coding Test 카테고리 내 다른 글 보러가기