-
[백준] 17608번 문제 (막대기) 파이썬(Python) 풀이Problem Solving/Baekjoon 2021. 9. 15. 16:17
https://www.acmicpc.net/problem/17608
t = int(input()) stack = [] for _ in range(t): bar = int(input()) while stack and stack[-1] <= bar: stack.pop() stack.append(bar) print(len(stack))
스택을 활용하여 풀 수 있는 문제다.
막대기들을 하나씩 추가하면서,
동시에 stack[-1] 값이 (stack에 들어있는 값 중에 가장 마지막 값) 지금 입력받는 막대기보다
길이가 같거나 짧으면 stack[-1]에 있는 막대기는 안 보이는 막대기가 되기 때문에 pop을 통해 제거해준다.
위 과정을 끝내고 stack에 남아있는 막대기들이 보이는 막대기가 된다.
'Problem Solving > Baekjoon' 카테고리의 다른 글
[백준] 2210번 문제 (숫자판 점프) 파이썬(Python) 풀이 (0) 2021.09.23 [백준] 10988번 문제 (팰린드롬인지 확인하기) 파이썬(Python) 풀이 (0) 2021.09.23 [백준] 10026번 문제 (적록색약) 파이썬(Python) 풀이 (0) 2021.09.15 [백준] 1032번 문제 (명령 프롬프트) 파이썬(Python) 풀이 (0) 2021.09.15 [백준] 1012번 문제 (유기농 배추) 파이썬(Python) 풀이 (0) 2021.09.15