문제
숫자들을 입력받고 N개의 버킷으로 이를 분배하여 각 버킷에 담긴 수들의 오차를 구하여 전체의 최소 오차값을 구해야한다.
해결
input -> (입력할 숫자의 개수) (나눌 버킷의 수 N) (수 입력)
이 문제에서 짚어볼 점을 몇 가지 추려본다면
1. 입력받을 수들을 최소한의 오차가 도출되도록 버킷에 분배할 것
2. 오차를 구할 때 평균이 정수가 아니라면 n < 평균 < n + 1 (n은 정수)에서 n과 n+1 중 더 적은 오차를 도출하는 것을 선택할 것
이렇게 두 가지가 있다.
첫 번째, 입력받을 수들을 최소한의 오차가 도출되도록 버킷에 분배할 것.
이를 위해 먼저 입력받을 수들을 정렬하는 과정이 필요하다.
비슷한 크기의 수끼리 묶어야 오차가 줄어들기 때문이다.
ex.
1, 2, 3의 평균은 2로 오차는 (1-2)² + (2-2)² + (3-2)² = 2
1, 20, 3의 평균은 8로 오차는 (1-8)² + (20-8)² + (3-8)² = 218
수가 정렬되면 이제 비슷한 수끼리 묶어주기 위하여
'Etc' 카테고리의 다른 글
제21회 세계 보안 엑스포 다녀온 후기 (0) | 2022.04.27 |
---|---|
맥북에어 m1 구입 및 virtual box 설치 (0) | 2021.05.06 |