SMALL
1. 문제링크
2. 문제 이해
우선 제일 오른쪽 막대의 길이를 기준으로 왼쪽 처음까지 배열을 돌며 비교해야겠다는 생각이 든다. 그래서 만약에 제일 왼쪽 막대보다 길이가 길면 전체 카운트에 +1을 해주면 될 것 같다. 보니까 자료구조 스택 문제네... 제일 마지막에 있는 요소를 차례로 빼가면서 비교하고, 만약에 제일 큰 요소보다 큰 새로운 요소라면 카운트를 해주고 제일 높은 막대기로 변경시켜주면 된다.
3. 문제 풀이
# 임의의 개수의 정수를 n줄을 입력받아서 리스트에 저장해야하므로 sys를 불러온다.
import sys
input = sys.stdin.readline
N = int(input())
arr = [int(input()) for _ in range(N)]
cnt = 0
top = 0
while arr:
# arr 마지막 요소 하나를 뽑는다.
stick = arr.pop()
if stick > top:
top = stick # 현 시점 제일 높은 막대기로 변경
cnt += 1
print(cnt)
LIST
'BOJ' 카테고리의 다른 글
BOJ 1157번 단어공부 파이썬 (0) | 2022.03.17 |
---|---|
백준 9012번 괄호 자바 풀이 (0) | 2022.01.19 |
백준 2884번 알람시계 파이썬 (0) | 2022.01.13 |
BOJ 1110번 더하기 사이클 파이썬 (0) | 2022.01.12 |
BOJ 1157 단어공부 파이썬 (0) | 2022.01.12 |