ShovelingLife
A Game Programmer
ShovelingLife
전체 방문자
오늘
어제
  • 분류 전체보기 (1072)
    • 그래픽스 (57)
      • 공통 (19)
      • 수학 물리 (22)
      • OpenGL & Vulkan (1)
      • DirectX (14)
    • 게임엔진 (183)
      • Unreal (69)
      • Unity (103)
      • Cocos2D-X (3)
      • 개인 플젝 (8)
    • 코딩테스트 (221)
      • 공통 (7)
      • 프로그래머스 (22)
      • 백준 (162)
      • LeetCode (19)
      • HackerRank (2)
      • 코딩테스트 알고리즘 (8)
    • CS (235)
      • 공통 (21)
      • 네트워크 (44)
      • OS & 하드웨어 (55)
      • 자료구조 & 알고리즘 (98)
      • 디자인패턴 (6)
      • UML (4)
      • 데이터베이스 (7)
    • 프로그래밍 언어 (348)
      • C++ (167)
      • C# (90)
      • Java (9)
      • Python (33)
      • SQL (30)
      • JavaScript (8)
      • React (7)
    • 그 외 (9)
      • Math (5)
      • 일상 (5)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Source Code 좌측 상단에 복사 버튼 추가 완료
  • 언리얼 엔진 C++ 빌드시간 단축 꿀팁
  • 게임 업계 코딩테스트 관련
  • 1인칭 시점으로 써내려가는 글들

인기 글

태그

  • 백준
  • 오블완
  • 알고리즘
  • 파이썬
  • 클래스
  • 함수
  • 포인터
  • C++
  • 그래픽스
  • 배열
  • 언리얼
  • 티스토리챌린지
  • 프로그래머스
  • 유니티
  • SQL
  • c#
  • Unity
  • string
  • 문자열
  • C

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
ShovelingLife

A Game Programmer

그 외

정보처리기사 실기 복원 2024 2회 해설

2024. 9. 24. 21:11

 1. 다음은 Java 코드에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오. / NNN

a b c를 단순히 비교시, 예) a == b 또는 a.equals(b)를 할 시 값이 아닌 주소를 비교하기 때문 Arrays.equals(a, b)를 사용해야됨.

class Main {
    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);
        check(a, c); 
        check(b, c); 
    }
 
    public static void check(int[] a, int[] b) {
        if (a==b) {
            System.out.print("O");
        }else{
            System.out.print("N");
        }
        
    }
}

 

2. 다음 문제에서 설명하는 용어를 작성하시오. / 반정규화

 

데이터를 중복시켜 성능을 향상시키기 위한 기법으로 데이터를 중복 저장하거나

테이블을 합치는 등으로 성능을 향상시키지만 데이터 무결성이 저하될 수 있는 기법

 

 

3. 다음은 SQL에 관한 문제이다. 아래 SQL 구문의 빈칸을 작성하시오. / VALUES, SELECT, FROM, SET 

 

테이블

사원 [사원번호(PK), 이름, 나이, 부서]

부서 [사원번호(PK), 이름, 주소, 나이]

 

신입 사원이 들어와서 사원 테이블에 추가

INSERT INTO 사원 (사원번호, 이름, 주소, 부서)   [      ①     ] (32431, '정실기', '서울', '영업');

 

위에 신입사원을 검색하면서 부서 테이블에 추가

INSERT INTO 부서 (사원번호, 이름, 나이, 부서)

[    ②     ] 사원번호, 이름, 나이, 23 FROM 사원 WHERE 이름 = '정실기';

 

전체 사원 테이블 조회

SELECT  *   [    ③   ]   사원;

 

퇴사로 인해 부서에 해당하는 값을 '퇴사'로 변경

UPDATE 사원   [      ④     ]   부서  =  '퇴사'  WHERE 사원번호  = 32431;

 

 

4. 다음 릴레이션의 Cardinality와 Degree를 작성하시오. / 5, 4

Cardinality는 행 수, Degree는 열 수

Cardinality : (  ①  )

Degree      : (  ②  )

 

 

5. 다음은 프로토콜에 대한 내용이다. 아래 내용을 읽고 알맞는 답을 작성하시오. / IPSec

 

- Network layer에서 IP패킷을 암호화하고 인증하는 등의 보안을 위한 표준이다. 

- 기업에서 사설 인터넷망으로 사용할 수 있는 VPN을 구현하는데 사용되는 프로토콜이다.
- AH(Authentication Header)와 ESP(Encapsulating Security Payload)라는 두 가지 보안 프로토콜을 사용한다.

 

 

6. 다음은 Python에 대한 문제이다. 아래 코드를 읽고 알맞는 출력 값을 작성하시오. / ab3ca3

f-string은 하나의 포멧이며 { } 안에 값이 들어감  

def fnCalculation(x,y):
    result = 0;
    for i in range(len(x)):
     temp = x[i:i+len(y)] 
     if temp == y:
       result += 1;
    return result
 
a = "abdcabcabca"
p1 = "ab";
p2 = "ca";
 
out = f"ab{fnCalculation(a,p1)}ca{fnCalculation(a,p2)}"
print(out)

 

7. 아래 설명하는 내용을 확인하여 알맞는 알고리즘을 작성하시오. / AES

 

- 대칭키 알고리즘으로 1997년 NIST(미국 국립기술표준원)에서 DES를 대체하기 위해 생성되었다.
- 128비트, 192비트 또는 256비트의 가변 키 크기와 128비트의 고정 블록 크기를 사용한다.
- 높은 안전성과 효율성, 속도 등으로 인해 DES 대신 전 세계적으로 많이 사용되고 있다.

 

 

8. 패킷 교환 방식 중에 연결형과 비연결형에 해당하는 방식을 작성하시오. / 1. 가상회선, 2. 데이터그램

 

① 연결형 교환 방식

② 비연결형 교환 방식

 

 

9. 아래 내용을 확인하고 보기에서 알맞는 답을 고르시오. / ㅂ. 순차적

 

실행 순서가 밀접한 관계를 갖는 기능을 모아 모듈로 구성한다.
한 모듈 내부의 한 기능 요소에 의한 출력 자료가 다음 기능 원소의 입력 자료로서 제공되는 형태이다.

 

10. 아래는 디자인 패턴에 관한 설명이다. 아래 설명을 읽고 보기에서 알맞는 용어를 작성하시오. / Iterator

 

- 컬렉션 객체의 내부 구조를 노출하지 않고 순차적으로 접근할 수 있게 하는 패턴이다. 
- 이 패턴은 객체의 내부 표현 방식에 독립적으로 요소에 접근할 수 있도록 해준다
- 반복 프로세스를 캡슐화하여 클라이언트 코드에서는 컬렉션의 구체적인 구현에 종속되지 않도록 한다.

 

 

11. 아래 그림을 바탕으로 RIP을 구성하여 최단 경로 비용을 계산하여 흐름에 맞게 작성하시오. / A -> D -> C -> F

홉 개수가 가장 낮은 경로가 정답 즉 4개 나머진 A B D C E F (6개), A D C E F (5개), A B D C F (5개)

예제

 

A  →

 

12. 아래의 표를 확인하여 SRT 스케줄링의 평균 대기시간을 계산하여 작성하시오.

 

A = 10 - 1 = 9초

B = 0초

C = 17 - 2 = 15초

D = 5 - 3 = 2초

총 26초 / 4 = 6.5

 

13. 다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오.

parr[0]은 arr[1][0] ~ arr[1][2]

parr[1]은 arr[2][0] ~ arr[2][2]

 

parr[1][1] = arr[2][1]

parr[1]+2 > arr[2][2] 역참조

**parr = arr[1][0]

8 + 9 + 4 = 21

#include <stdio.h>
 
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);
    
    return 0;
}

 

14. 다음은 Java 언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오.

파라미터로 true 넘어올 시 홀수, false 넘어올 시 짝수

1 + 3 + 5 + 7 + 9 = 25

2 + 4 + 6 + 8 = 20

class Main {
    public static void main(String[] args) {
        int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        ODDNumber OE = new ODDNumber();
        System.out.print(OE.sum(a, true) + ", " + OE.sum(a, false));
    }
}
 
interface Number {
    int sum(int[] a, boolean odd);
}
 
class ODDNumber implements Number {
    public int sum(int[] a, boolean odd) {
        int result = 0;
        for(int i=0; i < a.length; i++){
            if((odd && a[i] % 2 != 0) || (!odd && a[i] % 2 == 0))
                result += a[i];
        }        
        return result;
    }    
}

 

15. 다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력값을 작성하시오.

sumFn 함수에서 d엔 str2, s엔 str1이 넘어옴

str2는 first\0가 됨

str2는 크기가 6이므로 널문자 제외 i < 5 즉 1 + 2 + 3 + 4 = 10

#include <stdio.h>
#include <string.h>
 
void sumFn(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;
    sumFn(str2, str1);
 
    for (int i = 0; str2[i] != '\0'; i++) {
        result += i;
    }
    printf("%d", result);
    
    return 0;
}

 

16. 아래는 소프트웨어 설계에 대한 내용이다. 내용을 읽고 괄호안에 알맞는 답을 작성하시오. / 제어 or Control

 

- 어떤 모듈이 다른 모듈 내부의 논리적인 흐름을 제어하기 위해, 제어를 통신하거나 제어 요소를 전달하는 결합도이다.
- 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 통제하는 경우나 처리 기능이 두 모듈에 분리되어 설계된 경우에 발생한다.

(              ) Coupling

 

17. 다음은 Java에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오. / dcba

끝에서부터 시작되므로 

d c b a 순으로 가고 c a b a는 이미 seen 플래그가 있으므로 미포함

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

 

18. 다음은 C언어에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.

swap 함수는 * 또는 & 연산자가 없으므로 아무 의미 없는 함수 따라서 a와 b는 값이 그대로임

Fallthrough에 의해 break이 없으므로 case 11부터 b = 19 + 5 = 24, 11 - 24 = -13

#include <stdio.h>
 
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);
}

 

19. 다음은 C언어의 구조체에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오.

head = a

a.n2 = b

b.n2 = c

a->b->n1 = 20

#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;
 
    printf("%d\n", head->n2->n1);
 
    return 0;
}

 

20. 다음은 Java에 대한 문제이다. 아래 코드를 확인하여 알맞는 출력 값을 작성하시오. T 전체 제거

result[0] = I

result[1] = IS

result[2] = ES

result[3] = S

result[4] = RING

class Main {
    public static void main(String[] args) {
        String str = "ITISTESTSTRING";
        String[] result = str.split("T");
        System.out.print(result[3]);
    }
}

 

https://chobopark.tistory.com/483

저작자표시 (새창열림)

'그 외' 카테고리의 다른 글

정보처리기사 키워드 1  (4) 2024.10.08
정보처리기사 실기 정리 11. 응용 SW 기초 기술 활용  (0) 2024.09.30
정보처리기사 실기 복원 2024 1회 해설  (0) 2024.09.23
[정처기] 2024 필기 요약 1과목 - 소프트웨어 설계  (0) 2024.05.26
Doxygen 을 이용한 C++ API 문서 만들기  (0) 2023.12.13
    '그 외' 카테고리의 다른 글
    • 정보처리기사 키워드 1
    • 정보처리기사 실기 정리 11. 응용 SW 기초 기술 활용
    • 정보처리기사 실기 복원 2024 1회 해설
    • [정처기] 2024 필기 요약 1과목 - 소프트웨어 설계
    ShovelingLife
    ShovelingLife
    Main skill stack => Unity C# / Unreal C++ Studying Front / BackEnd, Java Python

    티스토리툴바