자동차가 차주 김표준의 편을 들면?

면접 대비

시간 제한1초메모리 제한512 MB

요약
k를 1부터 N까지 늘려 가며, 길이 k인 모든 연속 부분 배열 중 표준편차가 가장 큰 구간의 시작 인덱스를 찾고, 값이 같으면 가장 작은 인덱스를 출력한다.
난이도

쉬움10점 중 3점

유형
배열, 누적 합, 완전 탐색, 수학
정답자
아직 제출이 없습니다

문제

길이 NN인 수열 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. k=1,2,…,Nk = 1, 2, \dots, N에 대해 다음을 차례대로 수행하는 프로그램을 작성하시오.

  • AiA_i에서 시작하는 길이가 kk인 구간 Ai,Ai+1,…,Ai+k−1A_i, A_{i+1}, \dots, A_{i+k-1}의 표준편차를 σi\sigma_i라고 할 때, σi\sigma_i가 최대가 되는 ii를 출력한다. 그러한 ii가 여러 개라면 그중 가장 작은 ii를 출력한다.

예를 들어, 수열이 1,3,6,10,151, 3, 6, 10, 15이고 k=2k = 2라면 44를 출력해야 한다. 길이가 2인 구간 중 표준편차가 최대인 구간은 10,1510, 15이기 때문이다.

입력

첫째 줄에 수열의 길이 NN이 주어진다. (1≤N≤1,0001 \le N \le 1{,}000)

둘째 줄에 수열 A1,A2,…,ANA_1, A_2, \dots, A_N이 주어진다. (1≤Ai≤1,000,0001 \le A_i \le 1{,}000{,}000, AiA_i는 정수)

출력

NN개의 줄에 걸쳐 각각의 kk에 대한 ii의 값을 출력한다.

힌트

NN개의 자료 값 x1,x2,…,xnx_1, x_2, \dots, x_n이 있을 때,

평균 mm은 m=x1+x2+⋯+xnnm = \frac{x_1 + x_2 + \cdots + x_n}{n}

분산 VV는 V=(x1−m)2+(x2−m)2+⋯+(xn−m)2nV = \frac{(x_1 - m)^2 + (x_2 - m)^2 + \cdots + (x_n - m)^2}{n}

표준편차 σ\sigma는 σ=V\sigma = \sqrt{V}이다.

"자동차가 차주 김표준의 편을 들다"를 네 글자로 줄이면 "표준편차"이다. (ㅎㅎ;; ㅈㅅ.. ㅋㅋ!!)

예제1

  1. 예제 1

    입력
    5
    5 4 6 1 10
    
    예상 출력
    1
    4
    3
    2
    1