반응형
문제 출처 :
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 |