프로그래밍 정답

1	①	2	②	3	②	4	⑤	5	③
6	①	7	③	8	①	9	③	10	②
11	④	12	⑤	13	③	14	④	15	②
16	④	17	③	18	④	19	⑤	20	⑤

해 설

1. [출제의도] 프로그램 개발 과정 및 절차를 설명할 수 있다.

그림은 프로그램 개발을 위해 문제를 분석하는 모습이다. JAVA는 고급언어이며 입출력장치에 대한 대화 내용은 없다. 디버깅은 원시프로그램을 작성한 다음에 실시한다.

2. [출제의도] 문장으로 표현한 알고리즘을 분석하고 이해한다.

순서	단계	A B C D	순서	단계	A B C D	순서	단계	A B C D
1	1	12 8 0 0	5	4	8 4 1 0	9	1	4 4 2 0
2	2	4 8 1 0	6	1	8 4 1 0	10	2	0 4 3 0
3	3	4 8 1 0	7	2	4 4 2 0	11	3	0 4 3 0
4	1	4 8 1 0	8	3	4 4 2 0	12	5	0 4 3 0

3. [출제의도] 두 변수의 값을 교환하는 순서도를 이해한다.

두 변수 a, b의 값을 추가 변수를 사용하지 않고 교환하려면, (a = a + b) ⇒ (b = a - b) ⇒ (a = a - b)를 수행하면 된다.

4. [출제의도] 실생활의 예를 논리식으로 표현하는 방법을 알 수 있다.

조건에 따라 전등에 불이 켜지는 때는 a와 b를 누르거나, b와 c를 누르거나, a와 c를 누르는 경우와 a, b, c를 모두 누르는 경우이다.

5. [출제의도] 주어진 문제를 논리적으로 분석하고 탐구하는 능력을 기른다.

2g은 물체 쪽에 1g, 반대편에 3g을 놓으면 측정할 수 있고, 4g은 1g과 3g을 모두 놓아 측정할 수 있다.

6. [출제의도] 평균값을 구하는 알고리즘을 논리적으로 분석하고 이해한다.

알고리즘은 0이 입력될 때까지 입력한 값을 모두 더한 후 그 평균값을 구하여 출력한다. 단계 5에는 입력한 값의 개수를 구하는 문장이 들어간다.

7. [출제의도] 주어진 문제를 논리적으로 분석하고 탐구하는 능력을 기른다.

주어진 시간 안에 겹치지 않고 최대로 많은 경기를 시청하려면, 수영-축구-핸드볼-레슬링 순서로 시청하면 된다.

8. [출제의도] 수식과 제어문을 적용한 응용 프로그램을 작성할 수 있다.

세포의 수가 1초마다 2배씩 증가하는 것은 반복문을 이용하여 구현할 수 있다. 즉, 변수 n이 세포의 수를 나타내므로.  안에는 n = n * 2가 들어간다.

9. [출제의도] 주어진 문제를 논리적으로 분석하고 이해한다.

새 기계(M5)의 위치가 M1 왼쪽에 근접한 경우 거리의 합을 s1, M4의 오른쪽에 근접한 경우 거리의 합을 s5, M1 ~ M2, M2 ~ M3, M3 ~ M4 중간에 위치할 경우 거리의 합을 각각 s2, s3, s4 라고 하면 s1=0+2+5+10,  s2=1+1+4+9, s3=3.5+1.5+1.5+6.5, s4=7.5+5.5 +2.5+2.5, s5=10+8+5+0이 되어 s3이 가장 작다.  새 기계 M5를 기존 기계 사이 어느 곳에 설치해도 s3이 가장 작다.

10. [출제의도] 수식 및 연산자를 적용한 응용 프로그램을 작성할 수 있다.

반복문 안의 변수 a에는 21743의 각 자리 값이 저장되며, 조건문에 의해 변수 b에는 변수 a중 짝수 값이 누적되어 저장된다. 즉, b = 4 + 2가 된다.

11. [출제의도] 1차원 배열을 적용한 응용 프로그램을 작성할 수 있다.

‘유사’가 출력되기 위해서는 배열 d, r의 같은 위치에 있는 원소 값의 차의 제곱 값을 구한 합이 10미만이어야 한다.

[오답풀이] ①번 답지의 배열 r값이 배열 d와 한 요소만 달라서 가장 유사한 것으로 보이지만, 5번째 요소 (2-6)의 제곱이 16이 되어 10보다 크므로 ‘유사’가 출력되지 않는다.

12. [출제의도] 연산자의 기능을 설명할 수 있다.

어떤 수를 4로 나눈 나머지는 0, 1, 2, 3만 존재한다. 따라서 프로그램에 1 ~ 10까지 정수를 입력하면 0, 1, 2, 3만 출력된다.

13. [출제의도] 반복문과 선택문을 적용한 응용 프로그램을 작성할 수 있다.

10의 약수를 구한 후 그 합을 출력하는 프로그램이다. 1, 10을 제외한 10의 약수는 2, 5이므로 7이 출력된다.

14. [출제의도] 선택문을 응용한 프로그램을 분석하고 이해한다.

삼각형 세 변의 길이를 입력받아 삼각형이 이루어질 수 있는가를 판단한다. 삼각형은 가장 긴 한 변의 길이 보다 나머지 두 변의 길이의 합이 더 커야 한다.

15. [출제의도] 반복문 및 선택문을 활용한 프로그램을 분석하고 이해한다.

프로그램은 입력받은 값에서 1의 개수가 홀수인 경우 'OK'를 출력한다.

16. [출제의도] 1차원 배열을 적용한 응용 프로그램을 작성할 수 있다.

프로그램은 배열 d에 저장된 원소의 값의 개수를 구하여 배열 r에 저장하여 출력한다. 배열 d에는 1이 1개, 2가 2개, 5가 1개, 7이 4개 들어 있다.

17. [출제의도] 배열과 이중 반복문을 적용한 응용 프로그램을 작성할 수 있다.

동석차를 고려한 석차 처리 프로그램으로, 배열 d에는 97이 1개, 89가 2개, 78이 1개, 67이 2개 있으므로 배열 r에는 1, 2, 5, 2, 4, 5가 저장된다.

18. [출제의도] 배열과 트리구조를 적용한 응용 프로그램을 작성할 수 있다.

사용자 정의 함수(프로시저) adj는 오른쪽 서브트리(2, 1, 9)에서 가장 큰 값 9를 서브트리의 루트 값 2와 교환한다.

19. [출제의도] 2차원 배열 및 사용자 정의 함수를 활용한 프로그램을 분석하고 이해한다.

프로그램은 스택을 사용하였으며, 변수 pt의 최종 값은 0된다. 변수 pt는 전역변수로 선언되었으며, pop함수는 정수 값을 반환한다.

20. [출제의도] 2차원 배열을 응용한 탐색 프로그램을  논리적으로 탐구하는 능력을 기른다.

출발 위치 0에서 연결된 곳 1과 2를 스택에 저장한 후 2를 꺼내고, 다시 2에서 연결된 4와 5를 스택에 저장한 후 5를 꺼낸다. 이러한 작업을 반복하면서 스택으로부터 꺼낸 수를 출력하면 0-2-5-4-1-3이 된다.