코딩/공부

[Python] 백준 17608번 - 막대기

취미니스트 2024. 3. 16. 18:37
728x90
반응형

문제

https://www.acmicpc.net/problem/17608

 

표준 입력을 사용하기 위해 sys 모듈 추가.

정수 하나 입력.

입력받은 정수 만큼 추가적으로 숫자들 입력받아 리스트에 저장.

import sys


n = int(input())
nums = [int(sys.stdin.readline()) for _ in range(n)]

 

보이는 막대기의 수를 저장하기 위한 변수 생성 (1로 초기화 - 맨 앞은 무조건 보이기 떄문 => 리스트의 우측(뒤) 기준).

지금까지 확인한 막대기 중 가장 긴 막대기의 길이를 저장하기 위한 변수 생성.

=> 리스트의 맨 뒤의 요소를 저장하고 있음.

count = 1
curr = nums[-1]

 

리스트의 뒤에서 두 번째 요소부터 맨 앞까지 탐색.

- 만약 현재 가지고 있는 막대기의 길이보다 더 긴 막대기라면

-- 막대 정보 갱신.

-- 개수 증가.

개수 출력.

for i in range(n-2, -1, -1):
    if nums[i] > curr:
        curr = nums[i]
        count += 1

print(count)

 

전체 코드.

import sys


n = int(input())
nums = [int(sys.stdin.readline()) for _ in range(n)]
count = 1
curr = nums[-1]
for i in range(n-2, -1, -1):
    if nums[i] > curr:
        curr = nums[i]
        count += 1

print(count)
728x90
반응형