https://www.acmicpc.net/problem/17608
17608번: 막대기
아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로
www.acmicpc.net
[난이도] Bronze3
[유형] 구현
[풀이]
우측에서 바라봤을 때 현재 보이는 막대기의 높이만 cur 저장해주면서
다음 막대가 cur보다 높으면 cur을 이 막대의 높이로 업데이트 하고 정답에 1을 더해줍니다.
만약 cur보다 작으면 보이지 않는 막대이므로 무시해줍니다.
#include <cstdio> using namespace std; int N,ans,cur,a[100000]; int main(){ scanf("%d",&N); for(int i=0;i<N;i++) scanf("%d",&a[i]); for(int i=N-1;i>=0;i--) { if(a[i]>cur){ cur=a[i]; ans++; } } printf("%d",ans); }
https://github.com/has2/Problem-Solving/blob/master/boj-solved.ac/Bronze3/17608.cpp
'Problem-Solving > BOJ' 카테고리의 다른 글
[BOJ/백준][Silver1] 17610 : 양팔저울 (C++) (0) | 2022.07.04 |
---|---|
[BOJ/백준][Silver1] 17609 : 회문 (C++) (0) | 2022.07.04 |
[BOJ/백준][Gold3] 2830 : 행성 X3 (C++) (0) | 2022.05.29 |
[BOJ/백준][Gold5] 12919 : A와 B 2 (C++) (0) | 2022.05.29 |
[BOJ/백준][Gold5] 2617 : 구슬 찾기 (C++) (0) | 2022.05.29 |