반응형
- 숫자 제한 : #include <limits.h>
- 간단한 수학계산(최소, 최대 .. ) : #include <math.h>
- 제곱근 : #include <algorithm>
- 원하는 warning disable : #pragma warning(disable: 4996)
└ scanf warning code 4996
문제 풀이
double num15954_kakao()
{
int N=0, K=0;//인형이 n개 있을때 K개 이상의 연속된 위치의 인형
scanf("%d %d",&N,&K);
int *NP = new int[N];
//선호하는 사람 수 입력
for(int q =0; q<N; q++)
{
scanf("%d",&NP[q]);
}
double m = 0.0; //평균
double d = 0.0; //분산
double result = INT_MAX; //최소가 되는 표준편차 아무높은 숫자 넣음
int i = 0, j = 0;
//K번이상씩 반복 필요.
while(K<=N){
//시작 인덱스 i
for(i = 0; i <= N-K; i++)
{
//시작인덱스(i)에서 (K번+시작인덱스)까지
for(j = i; j <K+i; j++)
{
m += NP[j];
}
m = m/K;
//end 평균
for(j = i; j < K+i; j++)
{
d += (NP[j]-m) * (NP[j]-m);
}
d = d/K;
//end 분산
d = sqrt(d); //제곱근
result = (result > d )? d : result;
m = d = 0.0;
}
K++;
}
NP = NULL;
delete NP;
return result;
}
동적할당은 해제해줘도 접근이 가능함. 고로 또 사용될 수 있으니 꼭 NULL처리를 해줘서 외부에서 사용되지 못하도록 할것. 습관
728x90
반응형
'개발아닌개발 > 알고리즘문제풀이' 카테고리의 다른 글
[백준 알고리즘] 2011번 문제 암호코드 (0) | 2021.11.08 |
---|
댓글