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