공지사항
자세히 보기
https://docs.google.com/spreadsheets/d/1YHzbhbMqP467Gtd8UouCpXpkscb6lusNNvACZnZ3EmQ/edit?usp=sharing
2024년 2회 정보처리기사실기 모범답안 | |||
시험일 : | 2024-07-28 | ||
번호 | 분류 | 문제 | 답안 |
1 | class 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 | 데이터베이스의 성능 향상을 위해 데이터 중복을 허용하고 조인 연산을 줄여 조회 속도를 향상시키지만, 데이터 무결성이 저하될 수 있는 기법은? | 반정규화 | |
3 | SQL구문 빈칸 채우기 | ① 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 | |
7 | DES에 한계를 느끼고 ,NIST에서 발표한 블록 암호화 알고리즘 키 길이에 따라 128bit, 192bit, 256bit로 분류 | AES | |
8 | 패킷 교환 방식 ㄱ. 연결형 ㄴ. 비연결형 | 가상회선,데이터그램 | |
9 | 출력을 그 다음 입력으로 사용하는 응집도 | 순차적(Sequential) | |
10 | 컬렉션(List, Array 등)의 요소들을 순차적으로 접근하고 처리할 수 있도록 하는 패턴으로 컬렉션 내부의 요소들을 가리키는 cursot와 같은 역할을 하는 객체를 제공하여, 컬렉션의 내부 구조를 숨기고 다양한 방식으로 요소들을 순회할 수 있도록 하는 행위 패턴은? | iterator | |
11 | Rip 라우팅 최단 경로 비용 계산 문제 | A D C F | |
12 | SRT 스케쥴링 "평균 대기시간" 계산하기 | 6.5 | |
13 | c언어 포인터 배열 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 | |
14 | true, 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 | |
15 | c언어 선택자문제 \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 | |
18 | void 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 | |
20 | public class Dumok { public static void main(String[] args) { String str = "ITISTESTSTRING"; String[] result = str.split("T"); System.out.print(result[2].charAt(0)); } } | S |