입력 받은 두 수 A, B에 대한 최대공약수와 최소공배수를 유클리드 호제법으로 처리하려고 한다제시된 <그림>의 괄호 안 내용 (1)~(5)에 가장 적합한 항목을 <답항 보기>에서 선택하여 답안지의 해당 번호 (1) ~ (5)에 각각 마크하시오.

 

<처리조건>

- <그림의 순서도에 제시되어 있는 미완성 알고리즘을 분석하여가장 적합한 로직으로 구현될 수 있도록 답안을 선택하시오.

 

입력 받는 두수 A, B는 0이 아닌 서로 다른 양의 정수로 가정한다.

 

- MOD()는 괄호 안의 연산 수행하며 나머지를 구하는 함수이다예를 들어 MOD(5/3)의 값은 2이며, MOD(20/5)의 값은 0이다.

 

기호 “/” 는 나누기 연산 “*”는 곱셈 연산을 나타낸다.

 

 

최대공약수?

12의 약수 = 1, 2, 3, 4, 6, 12

18의 약수 = 1, 2, 3, 6, 9, 18

 

공약수공통된 약수를 보통 공약수라고 부른다.

12, 18의 공약수 : 1, 2, 3, 6

 

공약수 중에서 가장 큰 수가 최대공약수이다.

여기서는 6이다.

 

최소공배수?

2의 배수 = 2, 4, 6, 8, 10, 12, 14, 16, 18…

3의 배수 = 3, 6, 9, 12, 15, 18, 21, 24, 27…

 

공배수 = 6, 12, 18…

 

공배수 중에서 가장 작은 수가 최소 공배수이다.

 

유클리드 호제법?

큰수 작은수 -> 나머지

나머지가 이면 최대공약수 = 작은수최소공배수두수 곱/최대공약수

나머지가 이 아니면 큰수 작은 수작은 수 나머지




 

 






제시된 <그림>은 그레이 코드를 2진수로, 2진수를 그레이 코드로 변환하는 알고리즘을 나타낸 것이다. <그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시오.

 

<처리조건>

- 0과 1로 이루어진 5비트의 값이 배열 INPUT(5)에 입력된다배열 INPUT(5)의 첫 번째 비트 INPUT(1)의 값이 1이면 INPUT(2)부터 INPUT(5)까지 4비트의 값은 그레이 코드(Gray Code)이며배열 INPUT(5)의 첫 번째 비트 INPUT(1)의 값이 0이면 INPUT(2)부터 INPUT(5)까지 4비트의 값은 2진수(Binary)이다.

 

그레이 코드가 저장되어 있을 경우에는 4비트 그레이 코드를 2진수로 변환한 후 변환된 4비트 2진수를 10진수로 출력하고, 2진수가 저장되어 있을 경우에는 4비트 2진수를 그레이 코드로 변환 후 변환된 4비트 그레이 코드를 출력한다.

 

배열의 크기가 n일 경우 배열의 요소는 1부터 n까지 구성되는 것으로 한다예를 들어 A라는 배열의 크기가 10일 경우 A(10)으로 표시하고배열 요소는 A(1)부터 A(10)으로 구현된다.

 

반복문 설명예를 들어 변수 a에 대하여 “DO a = 1, 50, 1”의 의미는 a의 초기값 1, 최종 값 50, 증가치 1로서 a의 값이 1부터 50까지 1씩 증가하면서 해당 반복문 내의 로직을 반복 수행함을 의미한다.

 

 

그레이 코드와 2진수간의 변환은 다음 <예시>를 참조하시오.












 

'정보처리기사 > 알고리즘' 카테고리의 다른 글

[07년 2월] 평균과 석차 구하기  (0) 2017.08.02
[10년 1회] 유클리드 호제법  (0) 2017.08.02
[07년2회] 삽입 정렬  (0) 2017.08.02
[09년] 구구단  (0) 2017.08.02
[07년1회] 자신을 제외한 약수의 합  (0) 2017.08.02





제시된 <그림>은 100보다 작은 30개의 자연수가 배열 AR(30)에 정렬되지 않은 상태로 저장되어 있을 때 이 데이터를 오름차순으로 정렬하는 삽입 정렬(Insertion Sort) 알고리즘을 나타낸 것이다.

<그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시오.

 

<그림>에 제시되어 있는 알고리즘과 연계하여 가장 적합한 로직으로 구현될 수 있도록 답안 선택 시 유의하시오.

배열의 크기가 n일 경우 배열의 요소는 부터 n까지 구성되는 것으로 한다.

예를 들어, A라는 배열의 크기가 10일경우 A(10)으로 표시되고배열 요소는 A(1) 부터 A(10)으로 구현된다고 가정한다.













아래의 그림은 구구단 1~9단까지를 출력하는 순서도이다.

아래 순서도의 괄호 안 내용에 가장 적합한 번호를 <답항보기>에서 한 가지만 선택하시오.



 






 






어떤 정수의 모든 약수 중 자신을 제외한 약수를 모두 합하면 자신과 같아지는 수가 있다예를 들어 6의 약수 1, 2, 3, 6 중 6을 제외한 1, 2, 3을 더하면 6이 되어 자신과 같아진다.

 

다음 그림은 4부터 1,000까지의 정수 중 이러한 약수를 갖는 수를 찾아 출력하고 또한 그 개수를 구하여 출력하는 알고리즘이다. <그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시오.

 

사용하는 변수는 다음과 같다.

- LM: 자신을 제외한 약수의 합이 자신과 같은 수의 개수를 구하는 변수

- N, J, R: 계산 처리를 위한 변수

- K: 어떤 수의 모든 약수에서 자신을 제외한 약수 중 최대값

- SUM: 약수들의 합을 구하는 변수

 

약수의 의미 설명

어떤 수의 모든 약수 중 자신을 제외하면 그 절반 값이 최대의 약수가 된다. (짝수의 경우예를 들어 20의 모든 약수는 1, 2, 4, 5, 10, 20인데 자신(20)을 제외하면 20의 절반 값인 10이 최대의 약수가 된다.

 

함수 설명

- INT(X): X보다 크지 않은 정수를 구하는 함수이다.

 

- MOD(A, B): 정수 A를 정수 B로 나눠 나머지를 구하는 함수이다.




 











제시된 아래의 <그림>은 화폐의 매수를 구하기 위한 알고리즘이다.

<그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시오.

 

<처리조건>

화폐는 고액을 우선으로 하고 나머지는 단위 화폐 순으로 한다.

화폐는 10,000, 5,000, 1,000, 500, 100, 50, 10, 1원 총 9가지 종류이다.

입력 데이터는 성명과 출장비 지급액이며개인별 각 화폐 매수로 하며마지막에 전체 화폐 매수를 출력한다.

본 문제에서 “/” 연산자는 나누기 연산의 목을 구하는 연산자로 정의한다나누기 연산을 행하여 소수점 이하 발생시는 소수점 이하는 버림으로 처리한다.

Ex) 8/4의 결과 값은 2이고, 5/2의 결과 값은 2이고, 3/5의 결과 값은 0이다.

 

사용하는 변수는 다음과 같다.

PM(9) : 개인별로 지급되는 출장비 지급액에 대한 화폐 단위별 매수를 기억할 변수로 PM(1)에는 10,000원의 매수, PM(2)에는 5,000원의 매수 … PM(9)에는 1원의 매수 순으로 저장된다.

TM(9): 각 화폐 단위별 전체 화폐 매수를 기억할 배열로 TM(1)에는 10,000원의 매수, TM(2)에는 5,000원의 매수 … TM(9)에는 1원의 매수 순으로 저장한다.

N: 성명을 기억할 변수

P: 개인별로 지급되는 출장비지급액을 기억할 변수

T: 화폐 단위별로 화폐 매수로 계산할 금액(남은 금액)을 기억할 변수

M: 화폐 단위를 기억할 변수

SW: 화폐 단위 구분을 위한 변수로써 화폐 단위가 10,000, 1,000, 100, 1원인지, 5,000, 500, 50, 5원인지를 구분하기 위해 변수로 또는 1을 가진다.

K: 매수를 계산하거나 출력할 때 사용될 배열의 첨자

 

배열의 크기가 n일 경우 배열의 요소는 1부터 n까지이다.

Ex) A배열이 10이면 A(10)으로 표시구성 배열 요소는 A(1)부터 A(10)로 구성

 

반복문 설명

예를 들어 변수 a에 대하여 반복 “a=1, 50, 1”의 의미는 a의 초기값을 1, 최종값을 50, 증가치 값이 1로써 즉, a값이 1부터 50까지 1씩 증가하면서 해당 반복문내의 로직을 수행한다.

 

프로그램 실행 예시는 다음과 같다.

 

<입력 조건>

임철식 537620

양동수 538973

이동훈 173105

QUIT

 

<출력 조건>

출력 시 제목 부분을 다음 <출력 양식>과 같이 1, 2 라인의 밑줄 부분이며소제목은 6라인의 밑줄 부분을 의미한다.

 

<출력양식>
















아래의 그림은 (77*1) + (76*2) + (75*3) + (74*5) + …(2*76) + (1*77)의 결과를 구하여 출력하는 순서도이다.

 

아래 순서도의 괄호 안 내용에 가장 적합한 번호를 <답항보기>에서 한 가지만 선택하시오.

 

알고리즘에 사용된 변수는 아래와 같다.

 

P: 1증가 변수

Q: 1감소 변수

M: 각 항 계산 결과 변수

H: 합계 변수














아래의 그림은 서로 다른 두 자연수 A, B를 입력하여 A와 B사이 자연수들의 합계를 구하는 순서도이다.

 

합계는 작은 수에서 큰 수로 1씩 증가 시키며 구한다.

 

아래 순서도의 괄호 안 내용에 가장 적합한 번호를 <답항보기>에서 한 가지만 선택하시오.

 

입력되는 두 자연수의 경우 동일한 값은 입력되지 않는다.

알고리즘에 사용된 변수는 아래와 같다.

 

A,B: 정수입력 변수

N: 반복처리 변수

SUM: 합계 변수












제시된 <그림>은 5행 5열의 배열에 다음과 같이 숫자를 기억시키는 순서도이다.

 

<그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시요.

 

사용 변수 등은 다음과 같다.

A(5,5): 배열 변수

N: 1증가 변수

I: 배열의 행 변수

J: 배열의 열 변수

S: 행과 열의 증감 변수

 

K: 수행횟수 변수
















제시된 <그림>은 배열 A(10)에 기억된 10개의 데이터에 대하여 버블 정렬(sort)을 이용하여 오름차순으로 정렬하는 순서도이다.

<그림>의 괄호 안 내용에 가장 적합한 항목을 <답항 보기>에서 선택하여 해당 번호 (1)~(5)에 마크하시오.

 

사용되는 변수 등은 다음과 같다.

N정렬하고자 하는 수치 데이터의 개수

i정렬의 회전 수를 계산하기 위한 변수

j배열의 첨자 등을 위한 변수

FLAG임의의 회전 작업 시 데이터의 교환이 발생하지 않을 경우 비교가 반복되는 것을 방지하기 위한 변수

TM두 변수간의 값을 서로 바꾸기 위한 변수

 






+ Recent posts