본문 바로가기

정보올림피아드지역예선

정보올림피아드 초등 - 지역예선] 2009년도 24번문제

반응형

 

 

 

문제풀이)

data 배열에 저장되어 있는 값은 다음과 같다.

 0

 1

 2

 3

 4

 5

 6

 7

 8

 9

 1

 9

 10

 2

 3

 7

 8

 6

 4

 5

 아래 문장은 배열 0 ~ 4 까지의 데이터를 sum 에 합산하므로

for (i = 0 ; i <= w - 1 ; i++)

sum += data[i]; 

sum = 1 + 9 + 10 + 2 + 3 = 25

average = 25 / 5 = 5

 아래 문장을 수행하면 데이터 값의 변화는 다음과 같다.

 

for (i = 0 ; i <= n - 2 ; i++)

{

   sum = sum - data[i];

   sum = sum + data[i + w];

   average = sum / w;

   printf("%d ", average);

}

 

n = s-w + 1 = 10 -5 + 1 = 6 이므로 i 의 값은 0 ~ 4 까지 반복 됨

 i

 0

 1

 3

 sum

sum = 25 - 1

sum = 24 + 7 = 31 

 sum = 31 - 9

sum = 22 + 8 = 30

 sum = 30-10

sum = 20 + 6 = 26

sum = 26 - 2

sum = 24 + 4 = 28 

sum = 28 - 3

sum = 25 + 5 = 30 

 average

31 / 5 = 6 

 30 / 5 = 6

 26 / 5 = 5

28 / 5=5 

30 / 5 = 6 

따라서 다음의 데이터가 출력된다.

5,6,6,5,5,6

정답) 5번

반응형