[Python][백준 17608] 막대기
카테고리: Python Coding Test
태그: coding test 백준 17608 스택 자료구조 python
📏 막대기 문제 풀이
백준 17608번 막대기 문제의 파이썬 풀이
📝 문제 설명
💡 풀이
이 문제는 스택의 개념을 활용하여 해결할 수 있다. 오른쪽에서 봤을 때 보이는 막대기는 자신의 오른쪽에 있는 모든 막대기보다 큰 막대기이다. 따라서 오른쪽부터 순회하면서 현재까지의 최대 높이보다 큰 막대기를 찾으면 된다.
🔍 코드 설명
- 막대기의 개수 n을 입력받는다.
- 각 막대기의 높이를 입력받아 리스트에 저장한다.
- 오른쪽부터 순회하면서:
- 현재 막대기가 최대 높이보다 크면 카운트를 증가시키고 최대 높이를 갱신한다.
- 보이는 막대기의 개수를 출력한다.
✨ 참고
- 파이썬의 리스트를 스택처럼 사용할 수 있다.
📝 코드
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)