목표
> 카카오 코드 페스티벌 2018 예선 B번 문제 풀기
https://www.acmicpc.net/problem/15954
결과
해결 방법
> 항상 그렇듯이 카카오 문제는 이해를 하는 것이 가장 어려운 것 같다.
> 입력으로 들어오는 N은 인형들의 수, K는 골라야 하는 인형들의 수, 두 번째 줄에 들어오는 배열은 인형들을 선호하는 사람들의 수이다.
> 쉽게 말해서 N개의 인형들 중에 K개 이상의 연속된 인형을 뽑아서(결국 선호하는 사람들의 수) 표준편차의 최소값을 구하면 된다.
코드
#include
#include
#include
int size[500];
double std(int n, int k)
{
double min = DBL_MAX;
for (int i = 0; i <= n - k; i++) {
for (int j = i + k; j <= n; j++) {
double sum = 0;
double m = 0;
double std = 0;
for (int k = i; k < j; k++) {
sum += size[k];
}
m = sum / (j - i);
for (int k = i; k < j; k++) {
std += (size[k] - m) * (size[k] - m);
}
std = std / (j - i); //분산
std = sqrt(std); //표준편차
if (min > std)
min = std;
}
}
return min;
}
int main()
{
int n, k;
scanf("%d %d", &n, &k);
for (int i = 0; i < n; i++) {
scanf("%d", &size[i]);
}
printf("%.11lf", std(n,k));
return 0;
}
'CNU 학습 동아리 > 2020 동계 학습 동아리' 카테고리의 다른 글
2020 동계 학습 동아리_6회차_2020-02-14(금) (0) | 2020.02.14 |
---|---|
2020 동계 학습 동아리_5회차_2020-02-11(화) (0) | 2020.02.12 |
2020 동계 학습 동아리_4회차_2020-02-10(월) (0) | 2020.02.10 |
2020 동계 학습 동아리_3회차_2020-02-07(금) (0) | 2020.02.07 |
2020 동계 학습 동아리_1회차_2020-02-03(월) (0) | 2020.02.03 |
댓글