반응형

문제 출처 :

 

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


알고리즘 분석 :


문제 해결에 필요한 사항

1. 증가 수열 판단 알고리즘

2. 증가 수열이 끝났을 때의 초기화 방법


for문속에서 
       arr[i - 1] < arr[i] ? count += arr[i] - arr[i - 1] : count = 0;
 
        if (max < count)
max = count;
이 코드의 의미는 증가수열이면 count에 계속 값을 더해나가고 그게 아니라면 count를 0으로 초기화한다.

그리고 여러번 증가수열이 반복되 나오는 동안 그 저장해둔 max 변수에 값을 계속 갱신해준다는 의미이다.



소스 코드 : 


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
#include <stdio.h>
 
int main()
{
    int n;
    int arr[1001];
    int max = 0, count = 0;
 
    scanf("%d"&n);
    
    for (int i = 0; i < n; i++)
        scanf("%d"&arr[i]);
 
    for (int i = 1; i < n; i++)
    {
        arr[i - 1< arr[i] ? count += arr[i] - arr[i - 1] : count = 0;
 
        if (max < count)
            max = count;
    }
    printf("%d", max);
}
 
//                                                        This source code Copyright is Crocus 
//                                             Do you want to see more contents? click here >>
Crocus





반응형

'Applied > 알고리즘 문제풀이' 카테고리의 다른 글

[11944번] NN  (0) 2016.09.05
[9935번] 문자열 폭발  (0) 2016.09.05
[1350번] 진짜 공간  (0) 2016.08.30
[11650번] 좌표 정렬하기  (0) 2016.08.22
[7600번] 문자가 몇갤까  (0) 2016.08.14