• 검색 결과가 없습니다.

행정안전부시험출제과장

N/A
N/A
Protected

Academic year: 2021

Share "행정안전부시험출제과장"

Copied!
2
0
0

로드 중.... (전체 텍스트 보기)

전체 글

(1)

계산기 사용가능 여부 불가능

자료구조론 2 2

제 3 문. 다음 그래프를 보고 질문에 답하시오. (총 25점)

0 3 4

2 1 5

1) 이 그래프를 인접행렬(adjacency matrix) 표현법으로 표현하시오. (5점)

2) 정점(vertex) 0에서 출발하는 깊이우선탐색(depth first search)을 수행할 때, 정점들의 방문 순서를 쓰시오. (5점)

(단, 인접한 정점을 방문할 때 항상 번호가 작은 정점부터 방문한다고 가정한다) 3) 그래프가 인접행렬로 표현되어 있을 때, 깊이우선탐색을 수행하는 순환 함수

(recursive function)를 C언어로 작성하시오. (10점)

(단, 정점의 개수는 n, 인접행렬은 이차원배열 A, 배열 visited[]는 전역변수로 선언되고 적당한 값으로 초기화되었다고 가정한다)

4) 간선(edge)이 교차하지 않고 평면에 그릴 수 있는 그래프를 평면그래프 (planar graph)라고 한다. 위의 그래프는 평면그래프인가 아닌가? 평면그래프 라면 위의 그래프와 동등하며 간선이 교차하지 않는 평면그래프를 그리시오.

평면그래프가 아니라면 평면그래프가 될 수 없는 이유를 설명하시오. (5점)

제 4 문. 차수가 m인 B-트리는 m-원 탐색트리로 다음의 성질을 만족한다.

∘단말노드를 제외한 모든 노드는 최대 m개, 최소 ⌈m/2⌉개의 자식을 갖는다. 단, 루트노드는 단말노드가 아닐 경우 자식노드의 최소 개수는 2개이다.

⌈⌉는 올림(ceil)연산을 나타낸다.

∘모든 단말노드는 같은 레벨에 존재한다.

∘단말노드가 아닌 노드는 k개의 자식노드를 가질 경우 k - 1개의 키 값을 저장한다.

B-트리에 관한 다음 질문에 답하시오. (총 20점)

1) 루트노드의 레벨을 1로 할 경우, 높이가 h인 B-트리가 가질 수 있는 노드 개수의 최소값을 구하려 한다. 노드가 가질 수 있는 자식노드의 최소 개수를 t =⌈m/2⌉로 나타낸다. t를 이용하여 노드 개수의 최소값을 나타내는 식을 풀이과정과 함께 쓰시오. (10점)

2) 루트노드의 레벨을 1로 할 경우, 높이가 h인 B-트리가 저장할 수 있는 키 값의 개수의 최소값을 구하시오. 1)번 문제의 t를 이용하여 식을 표현하시오.

(5점)

3) 키 값이 n개인 경우 트리 높이의 최대값 h를 구하시오. n과 1)번 문제의 t를 이용하여 식을 표현하시오. (5점)

행정안전부 시험출제과장

(2)

계산기 사용가능 여부 불가능

자료구조론 1 2

자료구조론

2010년 시행 행정고등고시(기술직) 제2차시험

응시번호 : 성명 :

제 1 문. 다음과 같이 동작하는 n비트 이진 계수기(binary counter)가 있다고 하자.

이 계수기에 동작 신호가 들어오면 값이 1만큼 증가한다. 예를 들어 n =8일 때, 이진 계수기가 어떤 단계 t에서의 상태가 S(t) = 00010011이라고 가정하면 동작 신호가 들어오고 난 뒤의 상태는 S(t + 1) = 00010100이 된다. 모든 비트가 1인 경우에 동작 신호가 들어오면 다음 상태의 모든 비트는 0이 된다.

이 경우 S(t)에서 S(t + 1)로 바뀔 때 달라지는 비트의 수를 연산 비용이라고 하자. 즉 0에서 1로 또는 1에서 0으로 바뀌는 비트의 수를 계산한다.

하나의 동작신호에 따라 계수기의 상태를 변경하는 작업의 복잡도 (complexity)는 연산 비용이 가장 많이 필요한 경우(worst case)와 가장 적게 필요한 경우(best case), 그리고 평균적인 경우(average case)로 나누어 분석할 수 있다. 각 경우의 복잡도를 점근 표기법(asymptotic notation) 가운데 하나인

표기법을 사용하여 n에 대해 나타내시오. 이 때 그 계산과정을 반드시 나타

내야 한다. (총 25점)

1) 가장 많이 필요한 경우(worst case) (5점) 2) 가장 적게 필요한 경우(best case) (5점) 3) 평균적인 경우(average case) (15점)

제 2 문. 다음은 퀵 정렬(quick sort)에서 사용하는 partition 함수를 사용하여 전역변수 a로 주어진 정수 배열에서 중앙값을 구하여 출력하는 C프로그램이다. partition 함수의 매개변수 p와 q는 배열 a에서 탐색 범위를 나타내는 배열 인덱스들이다.

(총 30점) (단, 입력의 크기, 즉, 배열 a의 크기를 n이라고 가정한다. n이 짝수일 경우

n/2 번째로 작은 원소가 중앙값이며, n이 홀수일 경우 (n + 1)/2 번째로 작은 원소가 중앙값이다)

1) (가) 부분에 들어갈 루프(loop) 형태의 코드를 쓰시오. (15점)

2) 이 알고리즘의 시간복잡도를 최선의 경우, 최악의 경우, 평균적인 경우로 나누어 표기법을 이용하여 표현하고 그 근거를 간략히 설명하시오. (15점)

#include <stdio.h>

int a[] = { ... }; // 크기 n인 정수 배열 void main() {

int p = 0, q = sizeof(a)/sizeof(int) - 1, mid = (p + q)/2;

int x = 0;

(가)

printf("%d", a[x]);

}

int partition(int p, int q) {

int pivot = a[p], x, y = p, tmp;

for (x = p + 1; x <= q; x++) if (a[x] < pivot) {

y++;

tmp = a[x]; a[x] = a[y]; a[y] = tmp;

}

tmp = a[p]; a[p] = a[y]; a[y] = tmp;

return y;

}

참조

관련 문서

이 결 과는 CH 4 의 유량이 그래핀 합성 시 평균적인 grain 크기를 변 화시키는 중요한 파라미터임을 보여주고 본 연구에서 제안하는 UV/ozone 산화 및 습식식각 방법이

학생 D는 연산 능력이 떨어지는 것이 가장 큰 문제이다. 따라서 연산 능력을 개선시키기 위해서 기초적인 연 산문제들을 빠른 시간 안에 정확히 풀 수 있도록

획득 데이터 양에 있어서도 정전분말코팅의 경우가 가장 많았으며, 현상 액 도포의 경우가 그 다음 순이며 이에 비해 코팅하지 않은 금속표 면의 경우에는 정전분말코팅에 비해

반경성치즈인 체다치즈를 적용 할 때 단단하고 강한 조직이 필요한 블록 타입 제품의 가 공치즈를 제조할 경우 숙성이 진행되지 않거나 적게 진행 되어 intact casein 함량이

1) 치근단공의 만곡 외측 면적 변화 (Table 2, Figure 5) J자 레진모형근관의 경우 ProFile의 변화량이 가장 적게 나타났으며 K 3 , ProTaper 순으로 변화량이 증가하는 양상 을

상 대적으로 비유가 많이 쓰인 단원들은 입자적 관점에서 화 학 개념에 대한 설명이 필요한 단원들이었으나, 분자 운동 을 다루는 과학 1에서 2007 개정 교육과정에 비해 비유

일본은 섹션전환 기술에 대해서 특허활동이 가장 많이 집중되고 있으며, 특히 기술별 특 허활동 지수의 편차가 다른 나라에 비해 가장 적게 나타 나 초고속

게 나타났다. 10는 대졸 이상의 흡연양태 변화를 보여준다.. 교육 수준별 월 평균 지출은 고졸 이하에서 가장 높게 나타났 으며 대학교 재학생의 경우 가장 적게 지출하는 것으로