안경잡이 구루루

백준 28014 (첨탑 밀어서 부수기) [Python/파이썬] [Greedy/그리디] 본문

파이썬(Python)/문제풀이(백준,BaekJoon)

백준 28014 (첨탑 밀어서 부수기) [Python/파이썬] [Greedy/그리디]

구루루(gururu) 2023. 10. 9. 12:22
반응형

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

 

28014번: 첨탑 밀어서 부수기

첫째 줄에 첨탑의 개수 $N$이 주어진다. $(1\leq N\leq 5\,000\,000)$ 둘째 줄에는 앞에서부터 차례대로 첨탑의 높이 $H_1, H_2, \cdots, H_n (1\leq H_i\leq 1\,000\,000)$ 이 주어진다. 입력으로 주어지는 모든 수는 정

www.acmicpc.net

 


나:

n = int(input())
count =1
towers = list(map(int,input().split()))

for i in range(n-1):
    if towers[i] <=  towers[i+1]:
        count +=1
print(count)

완성된 코드는  위와 같다.

단순히 이전 타워 높이 보다 앞의 타워가 높으면 멈춰서 다시 넘어뜨리면 된다.

그래서 towers 에 모든 타워의 높이들을 리스트에 차례대로 입력받는다.

그리고 for 반복문을 이용해 현재 순서의 타워보다 바로 앞 타워의 높이가 높을 경우 다시 넘어뜨려야 하니 count +=1 을 시켜준다.

이때 이외의 경우는 신경 쓰지 않아도 되니 else 구문을 구지 쓰지 않는것이 코드를 간결하게 할 수 있는 방법이다.

반응형