Professional Documents
Culture Documents
처리기능사 알고리즘기출모음 (2009년)
처리기능사 알고리즘기출모음 (2009년)
처리기능사 알고리즘기출모음 (2009년)
START
SUM=(①)
READ A, B
> <
A:(④)
반복 N=( ② ) 반복 N=( ③ )
WRITE SUM
END
<답항보기>
1 SUM 2 N+2 3 B 4 P,Q,2 5 P,2,Q
6 HAP+P 7 SUM+P 8 99 9 N 10 M+N
11 P 12 SUM+2 13 Q,2,P 14 N+2 15 M/(N+2)
16 2,P,Q 17 SUM+N-M 18 -1 19 SUM-N+2 20 Q/(N+2)
21 100 22 B,A,1 23 N-SUM 24 SUM+N-2 25 (N+2)/M
26 2,Q,P 27 50 28 1 29 P,2,Q 30 (N+2)/Q
31 SUM-P 32 51 33 0 34 A,B,1 35 SUM+B
36 HAP-N 37 SUM+M-N 38 SUM+N 39 45 40 SUM+1
답안 ① 33 ② 22 ③ 34 ④3 ⑤9 ⑥ 38
- 1 - [자료배포] 건시스템(http://cafe.daum.net/gunsystem) 카페지기 무지개
건시스템정보처리학원 www.gunsys.com 2009년 정보처리기능사 실기 알고리즘 기출문제
※ 시험을 치르신 분들의 의견을 조합하여 복원한 관계로 실제 시험장의 문제와 다소 차이가 있을 수 있습니다.
아래의 그림은 배열 R에 기억된 30, 24, 71, 41, 43, 86, 70, 68, 78, 86, 98이 100이하의 자연수를 읽어 최대값,
최소값, 합계, 평균을 구하는 순서도이다. 단, 평균은 전체 자료의 합계에 대한 산술평균을 구하여야 하며 배열에
기억된 자연수는 R(1)부터 R(11)이다.
※ 아래 순서도의 괄호 안 내용에 가장 적합한 번호를 <답항보기>에서 한 가지만 선택하시오.
ST ART
R(11), SUM = 0, I = 0
MAX = 0, MIN = 100
I=( ① )
yes
I=(② )
no
yes I = I-1
MINR<R(I)
AVE = ( ⑥ )/I
no ( ③ ) = R(I)
출력
yes
MAX,MIN,SUM,AVE
MIN>R(I)
no ( ④ ) = R(I)
END
SUM=SUM+(⑤ )
<답항보기>
1 2 2 12 3 5 4 100 5 99
6 I=I+1 7 0 8 6 9 R(I) 10 R(I-1)
11 9 12 R(I)=MAX-MIN 13 R(I+1) 14 R(MIN) 15 MAX
16 SUM 17 MIN 18 I 19 R(MAX) 20 I=I+3
21 SUM+R(I) 22 I+1 23 -1 24 I=1 25 I-1
26 SUM+MAX 27 AVE 28 R/12 29 MAX=MAX-1 30 R(I)=MAX
31 MIN=R(I) 32 I=I+2 33 I=0 34 MIN=MIN-I 35 R(I)=MIN
36 MIN=I 37 MIN=S 38 SUM+A(I-1) 39 SUM+I 40 SUM+MIN
답안 ① 22 ② 2 ③ 15 ④ 17 ⑤9 ⑥ 16
- 2 - [자료배포] 건시스템(http://cafe.daum.net/gunsystem) 카페지기 무지개
건시스템정보처리학원 www.gunsys.com 2009년 정보처리기능사 실기 알고리즘 기출문제
※ 시험을 치르신 분들의 의견을 조합하여 복원한 관계로 실제 시험장의 문제와 다소 차이가 있을 수 있습니다.
ST ART
( ① )
K = K+1
J=( ② )
( ③ ) = K*J
Y
J < (④ )
N
반복 I = 1, 9,. 1
출력
K, '*', I , '=', ( ⑤ )
Y
K < (④ )
N
END
<답항보기>
1 A(I) 2 I 3 B 4 I+1 5 I+2
6 A(J) 7 I+9 8 99 9 N 10 A(K)+1
11 A(K) 12 I-9 13 A(I)*1 14 N+2 15 A(J)+1
16 A(9) 17 J=0 18 -1 19 K+I 20 K*I
21 100 22 J*K 23 9-1 24 I+J 25 2
26 K 27 50 28 1 29 J*2 30 7
31 K*1 32 9 33 0 34 K*1 35 8
36 J*9 37 I*9 38 K*J 39 J*1 40 J +1
답안 ① 17 ② 40 ③6 ④ 32 ⑤1
START
REM = 0, CNT = 0
SU = 1
YES
SU > 500
NO
SUM = 0 Write CNT
SU = SU + 1
K=(①)
END
J =1
YES NO
J >(②) ( ⑤ ) = SUM
NO YES
NO
REM = 0 Write SU
YES
SUM = ( ④ )
<답항보기>
1 I-1 2 -1 3 51 4 SU2 5 I+1
6 I MOD 5 7 SU / I 8 I+1 9 N 10 0
11 I/5 12 SUM+J 13 SUM+CNT 14 CNT+1 15 11
16 I*5 17 SUM+I 18 99 19 SU 20 12
21 J+1 22 SUM+K 23 SU1-100 24 SUM 25 SU+2
26 K+1 27 I 28 SU2 29 CNT 30 -11
31 SU/2 32 SU-1 33 6 34 K 35 -12
36 REM+1 37 100 38 60 39 REM 40 J
답안 ① 31 ② 34 ③ 40 ④ 12 ⑤ 19
- 4 - [자료배포] 건시스템(http://cafe.daum.net/gunsystem) 카페지기 무지개
건시스템정보처리학원 www.gunsys.com 2009년 정보처리기능사 실기 알고리즘 기출문제
※ 시험을 치르신 분들의 의견을 조합하여 복원한 관계로 실제 시험장의 문제와 다소 차이가 있을 수 있습니다.
아래의 그림은 5행, 5열의 2차원 배열에 아래와 같이 값을 입력하는 순서도이다. 2차원 배열의 저장 위치는 아래
왼쪽의 그림과 같고 순서도에 해당되는 처리 결과는 오른쪽의 2차원 배열의 형태로 저장된다.
[1][1] [1][2] [1][3] [1][4] [1][5] 2
[2][1] [2][2] [2][3] [2][4] [2][5] 2 3
[3][1] [3][2] [3][3] [3][4] [3][5] 2 3 4
[4][1] [4][2] [4][3] [4][4] [4][5] 2 3 4 5
[5][1] [5][2] [5][3] [5][4] [5][5] 2 3 4 5 6
START
P=0
P=( ① )
Q=0
( ② )
A(P, Q) = ( ③ )
Yes
( ④ )
No
Yes
( ⑤ )
No
END
<답항보기>
1 Q 2 3 3 yes 4 A(P) 5 A(Q)
6 13 7 M-1 8 A(I) 9 Comp1 10 Q<P
11 L 12 Q-P 13 P<5 14 Q=Q+1 15 2+A(P)
16 14 17 A(P)+1 18 <> 19 P+1 20 P=P+1
21 10 22 P 23 < 24 Q+P 25 A=A+1
26 A(P,Q) 27 5 28 >< 29 P>6 30 C+1
31 A(Q) 32 Q<6 33 Q>P 34 4 35 0
36 Q+1 37 P<6 38 Q-1 39 P=Q 40 P<4
답안 ① 19 ② 14 ③ 36 ④ 10 ⑤ 13
- 5 - [자료배포] 건시스템(http://cafe.daum.net/gunsystem) 카페지기 무지개
건시스템정보처리학원 www.gunsys.com 2009년 정보처리기능사 실기 알고리즘 기출문제
※ 시험을 치르신 분들의 의견을 조합하여 복원한 관계로 실제 시험장의 문제와 다소 차이가 있을 수 있습니다.
아래의 그림은 5행, 7열의 2차원 배열에 아래와 같이 값을 입력하는 순서도이다. 2차원 배열의 저장 위치는 아래
왼쪽의 그림과 같고 순서도에 해당되는 처리 결과는 오른쪽의 2차원 배열의 형태로 저장된다.
[1][1] [1][2] [1][3] [1][4] [1][5] [1][6] [1][7] 1 2 3 4 5 6 7
[2][1] [2][2] [2][3] [2][4] [2][5] [2][6] [2][7] 2 3 4 5 6 7 1
[3][1] [3][2] [3][3] [3][4] [3][5] [3][6] [3][7] 3 4 5 6 7 1 2
[4][1] [4][2] [4][3] [4][4] [4][5] [4][6] [4][7] 4 5 6 7 1 2 3
[5][1] [5][2] [5][3] [5][4] [5][5] [5][6] [5][7] 5 6 7 1 2 3 4
ST ART
M = M+1
Y
M>5
N
N = N+1 PRINT A
( ① )
ST ART
Y
K>7
N
( ② )
(③ )=K
N<7
K=( ④ )
( ⑤ )
<답항보기>
1 K 2 N+2 3 B 4 M/N 5 A(M,N)=0
6 M=0 7 M=1 8 99 9 N 10 M+N
11 K=K*1 12 M=2 13 N+1 14 N+2 15 M/(N+2)
16 N=0 17 M+1 18 -1 19 M=0 20 K=0
21 100 22 M=M-2 23 A(5,7) 24 A(N,K) 25 K=1
26 N=A(M,N) 27 100 28 1 29 M,N 30 K=10
31 A(M,N)=K 32 1000 33 0 34 A(N,M) 35 K=100
36 A(M,N)=0 37 M 38 K=K+1 39 A(K,N) 40 A(M,N)
답안 ① 38 ② 25 ③ 40 ④ 37 ⑤ 16
- 6 - [자료배포] 건시스템(http://cafe.daum.net/gunsystem) 카페지기 무지개
건시스템정보처리학원 www.gunsys.com 2009년 정보처리기능사 실기 알고리즘 기출문제
※ 시험을 치르신 분들의 의견을 조합하여 복원한 관계로 실제 시험장의 문제와 다소 차이가 있을 수 있습니다.
아래의 그림은 2차원 배열 A에 직각삼각형 형태로 1000까지의 자연수 중 2부터 시작하여 순차적으로 소수를
15개 까지 저장하는 알고리즘이다. 2차원 배열의 저장 위치는 아래 왼쪽의 그림과 순서도에 해당되는 처리 결과는
오른쪽의 2차원 배열의 형태로 저장된다.
[1][1] [1][2] [1][3] [1][4] [1][5] 2
[2][1] [2][2] [2][3] [2][4] [2][5] 3 5
[3][1] [3][2] [3][3] [3][4] [3][5] 7 11 13
[4][1] [4][2] [4][3] [4][4] [4][5] 17 19 23 29
[5][1] [5][2] [5][3] [5][4] [5][5] 31 37 41 43 47
START
TMP(1)=2, TMP(2)=3
CNT = ( ① )
CNT = ( ④ )
반복 P=5, 1000, 2
반복 P=1, 5, 1
반복 Q = 2, CNT, 1
NAM = ( ② ) 반복 Q = K, 5, 1
Y A(P)(Q) = TMP(CNT)
NAM = 0
N
CNT = CNT+1
CNT = CNT+1
TMP(CNT) = ( ③ )
배열 A 출력
Y
CNT = 15
N
END
<답항보기>
1 TMP(Q) 2 TMP 3 6-P 4 NAM=1 5 A(P,Q)=0
6 CNT+1 7 P=1 8 99 9 5 10 MOK
11 A(1000) 12 P=2 13 TMP(P) 14 N+2 15 2
16 P-6 17 P+1 18 NAM 19 M=0 20 Q=0
21 100 22 Q 23 A(5,7) 24 A(Q,P) 25 Q=1
26 P-MOK*TMP(Q) 27 100 28 1 29 Q,P 30 3
31 A(Q,P)=K 32 1000 33 0 34 P 35 Q-6
36 MOK*TMP(Q) 37 CNT 38 K+1 39 A(K,N) 40 A(P,Q)
답안 ① 15 ② 26 ③ 34 ④ 28 ⑤3
- 7 - [자료배포] 건시스템(http://cafe.daum.net/gunsystem) 카페지기 무지개
2-08. 약수 알고리즘 연습문제2> 아래의 순서도는 자연수 N을 입력받아 입력받은 자연수의 약수를 구하는 순서도이다.
아래의 순서도에서 괄호에 해당하는 내용을 ‘답항보기’에서 찾아 순서도를 완성하라.
예제) 자연수 N을 입력받아 약수를 구하는 순서도를 작성하라.
- 사용되는 변수
- 사용되는 변수 ∴ N : 입력 자연수 ∴ L : 인덱스 변수
․ N : 입력 자연수
- 처리조건
․ A(100) : 약수를 저장하기 위한 배열
․ 입력되는 수와 구하고자 하는 약수의 범위는 자연수 범위로 한정한다.
․ NG : 나머지 기억 변수
․ 나머지는 mod() 함수를 사용하여 구한다. (Mod()함수 사용 예) mod(14, 3) ⇒ 결과 2
․ I : 인덱스 변수(처리 로직 배열 첨자 결정)
․ L : 인덱스 변수(출력 로직 배열 첨자 결정)
START
- 처리조건 ․ 입력되는 자연수는 1,000이하의 자연수가 입력된다.
▶문제 분석
․ 구하여진 약수는 배열에 저장한 후 최종적으로 오름차순으로 출력한다.
입력 N
특정한 자연수의 약수를 구하는 문제입니다. ․ 나머지는 MOD 연산자를 이용하여 구한다. (예) 14 MOD 3 ⇒ 결과 2
특정 자연수의 약수는 자신이하의 자연수들 중에서 자신을
반복 L = 1, N, 1
나누었을 때 나머지가 0인 수에 해당합니다.
No ▶답항보기
예를 들면 자연수 8의 약수는 1, 2, 4, 8이 됩니다. START
mod(N, L) = 0
1 2 3 4 5
Yes -1 0 1 N-1 N+1
▶순서도 분석 A(100)
출력 L 6 7 8 9 10
입력 받은 자연수 N을 1부터 N까지 순차적으로 나누었을
입력 N N A(1) A(I) A(N) 100
때 나머지가 0인 수만을 출력하면 됩니다.
예를 들면 입력받은 자연수가 8이라면 8을 1부터 8까지
A(1) = N
순차적으로 나누었을 때 나머지가 0이 되는 수는 1, 2, 4,
END 8입니다. I =(①)
연습문제1> 아래의 순서도는 자연수 N을 입력받아 입력받은 자연수의 약수를 구하는 순서도이다. N=( ② )
아래의 순서도에서 괄호에 해당하는 내용을 ‘답항보기’에서 찾아 순서도를 완성하라.
No Yes
단, 소수점 이하 절삭은 Int()함수를 사용한다. (예) Int(14.7) ⇒ 결과 24 N=0
- 사용되는 변수 ∴ N : 입력 자연수 ∴ L : 인덱스 변수
∴ MOK : 몫 기억 변수 ∴ NMG : 나머지 기억 변수 NG = (③) Mod N
반복 L = I, 1, (⑤)
START No
▶답항보기 NG = 0
출력 A(L)
1 2 3
입력 N Yes
0 1 NMG+MOK
I = I +1
L=( ① ) 4 5 6
<= > N-(MOK×L) A(I) = ( ④ ) END
(②) 7 8 9
L:N L +1 L -1 MOK-(N×L)
(③)
L=( ⑤ ) MOK = Int(N/L) ♠ 힌트...
END
1. 입력된 자연수가 8이라면 8의 약수가 순차적으로 아래의 구조로 배열에 입력됩니다.
NMG = ( ④ )
A(1) A(2) A(3) A(4)
No 8 4 2 1 ※ 임의의 자연수의 약수는 자신을 포함합니다.
NMG = 0
Yes
♠힌트... 2. 입력된 자연수를 약수를 기억하는 배열의 첫 번째 값으로 입력한 후 입력된 수를 1씩 감소시키며 배열
의 첫 번째 값에 대하여 나머지를 구하는 연산을 한 후 나머지가 0이면 배열의 첨자를 증가시킨 후
출력 L 1. L변수 초기치 및 로직의 반복횟수 :
입력함으로써 약수를 배열에 순차적으로 기억시킵니다.
선처리 후증가라는 것에 유의
3. 배열에 순차적으로 입력된 값은 내림차순으로 입력되었으므로 이를 역순으로 출력합니다.
2. 나머지 값 구하기 : 교재 2-6강 참조
- 8 -
2-10. 소수 알고리즘 연습문제> 아래의 순서도는 자연수 N을 입력받아 2에서 N까지의 소수의 합계를 구하는 순서도이다.
아래의 순서도에서 괄호에 해당하는 내용을 ‘답항보기’에서 찾아 순서도를 완성하라.
가. 소수의 정의 - 사용되는 변수 ∴ N : 입력 자연수 ∴ K : 인덱스 변수(소수 판별을 위한 제수)
a. 자연수 중에서 1과 자신만을 약수로 가지는 자연수 ∴ S : 합계 변수 ∴ L : 인덱스 변수(소수 판별을 위한 피제수)
b. 소수의 예
예1) 5는 소수 : 약수로 1과 5만을 가짐 ST ART ▶답항보기
예2) 9는 소수 아님 : 약수로 1, 3, 9를 가짐 1 2 3 4 5 6 7
L = 1, S = 0 L+1 N+1 K+1 S+1 S+L N K
나. 소수 판별 방법
a. 소수 유무를 판별하고자 하는 자연수 N을 피제수(나누어지는 값)로 정하고 제수(나누는 값)를 2에 입력 N
서 시작하여 1씩 증가시키며 나누어 갈 때 나머지가 0이 발생하면 나눈 값과 N을 비교하여 같으
면 N은 소수로 판정하고 다르면 N은 소수가 아닌 것으로 판정한다.
b. 소수 판별 방법의 예 L=( ① )
예1) 자연수 5의 소수 유무 판별 ♠ 힌트...
① mod(5, 2) = 1 ② mod(5, 3) = 2 ③ mod(5, 4) = 1 ④ mod(5, 5) = 0 K=2 1. ①번 : 소수 판별을 위한 자연수를
⇒ 5를 2부터 1씩 증가시키며 순차적으로 나눈 나머지가 0이 되는 시점이 자신의 수인 5로 나누었을 때 2에서 1회 반복할 때마다 1이 증
이기 때문에 5는 소수이다. 가되도록 처리합니다.
K=( ② )
예2) 자연수 9의 소수 유무 판별 No 2. ②번 : 소수의 판별을 위한 L을 K
① mod(9, 2)=1 ② mod(9, 3)=0 mod(L, K) = 0
로 나눈 나머지가 0이 아니면 나
⇒ 9를 2부터 순차적으로 나눈 나머지가 0이 되는 시점이 3으로 나누었을 때이기 때문에 자신의 수인 9 Yes 머지가 0이 될 때까지 K를 1씩
로 나누기 전에 나누어 떨어졌으므로 9는 소수가 아니다. No 증가시킵니다.
L=K
3. ③번 : 만약 L과 K가 같다면 L은
Yes
예제) 자연수 N을 입력받아 소수여부를 출력하는 순서도를 작성하라. 소수이므로 S에 L을 누적하여 소
S= ( ③ ) 수의 합계를 구합니다.
단, 나머지는 mod()함수를 사용하여 구한다. (Mod()함수 사용 예) mod(14, 3) ⇒ 결과 2 출력 S
4. ④번 : 구하고자 하는 소수의 합계
- 사용되는 변수 ∴ N : 입력 자연수 ∴ K : 인덱스 변수(소수 판별을 위한 제수)
범위는 2에서 N까지이므로 N까지
No
L=(④ ) END 의 소수 판별이 끝났다면 종료하
ST ART 고 N까지의 소수 판별이 끝나지
▶순서도 분석 Yes
않았다면 계속 수행합니다.
K=1 1. K=K+1 : 소수의 판별을 위해 입력 받은 수 N을 2부터
1씩 증가시키며 나누기 위한 수를 발생시킴
입력 N ※ K의 초기치가 1인 것은 1로 나눈 나머지는 모두 0이므
로 K=K+1을 수행하여 K를 2로 증가시킨 후 2부터 나
머지를 구하기 위함
K=K+1
2. mod(N, K)=0 : 소수 판별을 위한 수 N을 K로 나눈 나
No 머지가 0이 아니면 나머지가 0이 될 때 까지 K를 1씩
mod(N, K) = 0
증가시키며 반복 수행
Yes
3. 판단 N=K : mod(N, K)의 결과가 0이 발생했을 때 나
Yes No
N=K 누어진 값(피제수) N이 2부터 1씩 증가시키며 나눈 값
"소 수 " "소 수 아 님 " (제수) K와 같다면 K가 2에서 N-1까지 반복 수행하는
동안 나머지가 0으로 떨어진 적이 없다는 것을 의미하므
로 N은 소수이지만 N과 K가 같지 않다면 K가 N까지 증
가하기 전에 나누어떨어진 값(1과 N) 이외의 약수가 있
END
다는 것이므로 N은 소수가 아니다.
- 9 -