23번 문제
내가 풀이한 답
순회(for)를 돌면서 i번째 값과 i+1값을 비교하여 증가하는 값이거나 같은 값이면 len 변수를 증가시키는 방향으로 코드를 짰다. 감소하는 값이면 len 변수를 다시 0으로 초기화하였다.
#include <stdio.h>
#include <stdlib.h>
int main(int argc, char** argv) {
//freopen("input.txt", "rt", stdin);
int n, i, len = 0, max = 0;
scanf("%d", &n);
int *arr = (int *)malloc(sizeof(int)* n);
for(i=0; i<n; i++){
scanf("%d", &arr[i]);
}
for(i=0; i<n-1; i++){
if(arr[i+1]-arr[i] >= 0){
len++;
if(len > max) max = len;
}
else len = 0;
}
printf("%d", max+1);
free(arr);
return 0;
}
결과는 통과하였다.
사이트의 답안
#include<stdio.h>
int main(){
freopen("input.txt", "rt", stdin);
int n, i, pre, now, cnt, max;
scanf("%d", &n);
scanf("%d", &pre);
cnt=1;
max=1;
for(i=2; i<=n; i++){
scanf("%d", &now);
if(now>=pre){
cnt++;
if(cnt>max) max=cnt;
}
else cnt=1;
pre=now;
}
printf("%d\n", max);
return 0;
}
사이트의 답은 배열을 사용하지 않고 차례대로 입력한 값을 바탕으로 진행하였다. 논리적으로는 똑같은 것을 확인했다.
'알고리즘 & 자료구조 > 기초 다잡기' 카테고리의 다른 글
25. 석차 구하기 (0) | 2020.09.08 |
---|---|
24. Jolly Jumpers (0) | 2020.09.08 |
22. 온도의 최대값 (0) | 2020.09.07 |
21. 카드게임 (0) | 2020.09.07 |
20. 가위 바위 보 (0) | 2020.09.07 |