공지사항

2024년 2회 정보처리기사 실기 가답안

자세히 보기


https://docs.google.com/spreadsheets/d/1YHzbhbMqP467Gtd8UouCpXpkscb6lusNNvACZnZ3EmQ/edit?usp=sharing 




2024년 2회 정보처리기사실기 모범답안
시험일 :2024-07-28
번호분류문제답안
1class Dumok {
public static void check(int[] a, int[] b) {
if (a.length != b.length) {
System.out.print("N");
return;
}

for (int i = 0; i < a.length; i++) {
if (a[i] != b[i]) {
System.out.print("N");
return;
}
}

System.out.print("O");
}

public static void main(String[] args) {
int[] a = new int[]{1, 2, 3, 4};
int[] b = new int[]{1, 2, 3, 4};
int[] c = new int[]{1, 2, 3};

check(a, b); // Output: O
check(a, c); // Output: N
check(b, c); // Output: N
}
}
NNN
2데이터베이스의 성능 향상을 위해 데이터 중복을 허용하고 조인 연산을 줄여 조회 속도를 향상시키지만, 데이터 무결성이 저하될 수 있는 기법은?반정규화
3SQL구문 빈칸 채우기

① values
② select
③ from
④ set
4다음 릴레이션의 Degree와 Cardinality는?① 카디널리티 : 5 ② 디그리 : 4
5다음 문장이 설명하는 것은?

- 기업 네트워크에서 안전한 데이터 통신을 보장하기 위한 보안 프로토콜
- IP 패킷에 암호화와 인증 기능을 추가하여 데이터 무결성과 기밀성을 확보
- AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용
- AH는 데이터의 무결성과 인증을 담당하며, ESP는 데이터를 암호화하여 기밀성을 보장
- 기업은 이것을 통해 VPN을 구축하거나 클라우드 서비스와의 안전한 연결을 설정하여 민감한 정보를 보호하고, 원격 근무자의 안전한 접속을 지원할 수 있다.
IPSec
6/ Example
String a = "abdcabadddabc"
String p1 = "ab";
String p2 = "ca";
for(int i = 0 ; i < a.length - p1.length + 1 ; i++){
for(int j = 0; j < p1.length; j++){
// slice한 범위가 p1인 횟수 더하기
}
}
p1, p2 몇개 나오는지

print(f"ca{함수명(p2)} ab{함수명(p1)")

ab3 ca3
7DES에 한계를 느끼고 ,NIST에서 발표한 블록 암호화 알고리즘

키 길이에 따라 128bit, 192bit, 256bit로 분류
AES
8패킷 교환 방식
ㄱ. 연결형
ㄴ. 비연결형
가상회선,데이터그램
9출력을 그 다음 입력으로 사용하는 응집도순차적(Sequential)
10컬렉션(List, Array 등)의 요소들을 순차적으로 접근하고 처리할 수 있도록 하는 패턴으로 컬렉션 내부의 요소들을 가리키는 cursot와 같은 역할을 하는 객체를 제공하여, 컬렉션의 내부 구조를 숨기고 다양한 방식으로 요소들을 순회할 수 있도록 하는 행위 패턴은?iterator
11Rip 라우팅 최단 경로 비용 계산 문제

A D C F
12SRT 스케쥴링 "평균 대기시간" 계산하기6.5
13c언어 포인터 배열
int main() {
int arr[3][3] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
int* parr[2] = {arr[1], arr[2]};
printf("%d", parr[1][1] + *(parr[1]+2) + **parr);
}
21
14true, false 값 기준으로 홀수 합 , 짝수 합 출력하기
인터페이스

int v[] = [1, 2, 3, 4, 5, 6, 7, 8, 9]
sum = 0;

(odd) -> {
if((odd && v[i] % 2 != 0) || (!odd && v[i] % 2 == 0)) sum += v[i];
}
25, 20
15c언어 선택자문제 \0 전까지 더하기


ivoid func(char *d, char *s) {
int sum = 0;
while(*s) {
*d = *s;
d++;
s++;
}
*d = '\0'
}
int main() {
char* str1 = "first";
char str2[50] = "teststring";
int result = 0;
func(str2, str1);
for(int i=0; str2[i] != '\0' i++) {
result += i;
}
printf("%d", result);
}
10
16다음이 설명하는 모듈화 개념은?

- 하나의 모듈 내 구성 요소들이 서로 순환적인 의존 관계를 가지는 응집도를 의미한다.
- 높은 커플링으로 인해 모듈 간의 결합도가 강하고, 상호 의존적인 제어로 인해 복잡한 제어 흐름을 가진다.
- 모듈 내 구성 요소 간의 관련성이 적고, 유지보수가 어려워지는 결과를 초래한다.
- 모듈 내 구성 요소들이 서로의 출력을 입력으로 사용하는 순환적인 구조로 인해 커플링이 높고, 제어가 복잡하며, 기능적인 응집력이 낮은 상태를 의미한다.
순환적 응집도
17재귀함수, 문자열 역순 출력 중 중복 값은 제외하고 출력


public class Dumok {
public static String rf(String str, int index, boolean[] seen) {
if(index < 0) return "";
char c = str.charAt(index);
String result = rf(str, index-1, seen);
if(!seen[c]) {
seen[c] = true;
return c + result;
}
return result;
}
public static void main(String[] args) {
String str = "abacabcd";
int length = str.length();
boolean[] seen = new boolean[256];
System.out.print(rf(str, length-1, seen));
}
}
dcba
18void swap(int a, int b) {
int t = a;
a = b;
b = t;
}

int main() {
int a = 11;
int b = 19;
swap(a, b);
switch(a) {
case 1:
b += 1;
case 11:
b += 2;
default:
b += 3;
break;
}
printf("%d", a-b);
}
-13
19구조체 포인터

#include <stdio.h>

// 구조체 정의
struct node {
int n1;
struct node *n2;
};

int main() {
// 노드 선언 및 초기화
struct node a = {10, NULL};
struct node b = {20, NULL};
struct node c = {30, NULL};

// 링크드 리스트 구성
struct node *head = &a;
a.n2 = &b;
b.n2 = &c;

// head->n2->n1 값을 출력
printf("%d\n", head->n2->n1);

return 0;
}
20
20public class Dumok {
public static void main(String[] args) {
String str = "ITISTESTSTRING";
String[] result = str.split("T");
System.out.print(result[2].charAt(0));
}
}
S