일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
Tags
- 투 포인터
- 포맷스트링버그
- fsb
- 이진트리
- DFS
- tcache
- 이진 탐색
- BFS
- 완전 탐색
- 다이나믹 프로그래밍
- 에라토스테네스의 체
- 연결리스트
- 수학
- BOF
- 문자열 처리
- 스택
- 큐
- 스위핑 알고리즘
- 백트래킹
- OOB
- 이분 탐색
- off by one
- 브루트 포스
- RTL
- syscall
- heap
- House of Orange
- 동적 계획법
- 분할 정복
- ROP
Archives
- Today
- Total
SDJ( 수돈재 아님 ㅎ )
[C] 17608 - 막대기 본문
https://www.acmicpc.net/problem/17608
17608번: 막대기
아래 그림처럼 높이만 다르고 (같은 높이의 막대기가 있을 수 있음) 모양이 같은 막대기를 일렬로 세운 후, 왼쪽부터 차례로 번호를 붙인다. 각 막대기의 높이는 그림에서 보인 것처럼 순서대로 6, 9, 7, 6, 4, 6 이다. 일렬로 세워진 막대기를 오른쪽에서 보면 보이는 막대기가 있고 보이지 않는 막대기가 있다. 즉, 지금 보이는 막대기보다 뒤에 있고 높이가 높은 것이 보이게 된다. 예를 들어, 그림과 같은 경우엔 3개(6번, 3번, 2번)의 막대기가
www.acmicpc.net
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main(void)
{
int arr[100005];
int n;
int cnt = 1;
int top = 0;
scanf("%d", &n);
for(int i = 0; i < n; ++i)
scanf("%d", &arr[i]);
top = arr[n-1];
for(int i = n-1; i >= 0; --i)
{
if(arr[i] > top)
{
cnt++;
top = arr[i];
}
}
printf("%d", cnt);
}
|
'알고리즘 > Backjoon' 카테고리의 다른 글
[C++] 1065 - 한수 (0) | 2019.11.24 |
---|---|
[C] 17952 - 과제는 끝나지 않아! (0) | 2019.11.23 |
[C++] 17952 - 과제는 끝나지 않아! (0) | 2019.11.23 |
[C] 4673 - 셀프 넘버 (0) | 2019.11.23 |
[C] 17827 - 달팽이 리스트 (0) | 2019.11.23 |
Comments