정보처리기사 실기(24년 2회 기출복원)

2025. 9. 14. 17:38·이론공부/정보처리기사 실기 기출

출처 : https://chobopark.tistory.com/483#google_vignette

 

[2024년 2회] 정보처리기사 실기 복원 문제

안녕하세요. 2024년 2회 정보처리기사 실기 기출문제를 정리해보았습니다.해당 복원된 기출문제가 많은 분들에게 도움이 되었으면 좋겠습니다.정보처리기사 개편안인 2020년 시험부터 기출문제

chobopark.tistory.com

 

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

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");
        }
        
    }
}
더보기

정답 : NNN

 

풀이 : 

==은 주소값을 비교하는 연산자이다.

a, b, c는 모두 new int[]로 새로 생성된 객체들이므로

가리키는 주소가 모두 다르다

2. 다음 문제에서 설명하는 용어를 작성하시오.

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

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

더보기

정답 : 반정규화

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

[테이블]

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

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

 

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

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

 

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

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

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

 

전체 사원 테이블 조회

SELECT  *   [    ③   ]   사원;

 

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

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

 

더보기

정답 :

① - VALUES

② - SELECT

③ - FROM

④ - SET

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

Cardinality : (  ①  )

Degree      : (  ②  )

더보기

정답 :

① - 5

② - 4

 

풀이 : 

Cardinality = 튜플(행) 수

Degree = 속성(열) 수

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

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

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

더보기

정답 : IPSec

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

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)
더보기

정답 : ab3ca3

 

풀이 : 

fnCalculation(a, p1)

x = "abdcabcabca"

y = "ab"

x를 i부터 y길이만큼 잘라서 같으면 result +1

ab, bd, dc, ca, ab, bc, ca, ab, bc, ca → 3

 

fnCalculation(a, p2)

x = "abdcabcabca"

y = "ca"

x를 i부터 y길이만큼 잘라서 같으면 result +1

ab, bd, dc, ca, ab, bc, ca, ab, bc, ca → 3

 

out = f"ab3ca3"

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

 

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

더보기

정답 : AES

8. 패킷 교환 방식 중에 연결형과 비연결형에 해당하는 방식을 작성하시오. 

① 연결형 교환 방식

② 비연결형 교환 방식

더보기

정답 : 

① - 가상회선

② - 데이터그램

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

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

 

[보기]

ㄱ.  기능적(functional)           ㄴ.  우연적(Coincidental)          ㄷ.  통신적(Communication)       ㄹ.  절차적(Procedural)         ㅁ.  시간적(Temporal)           ㅂ.  순차적(sequential)              ㅅ.  논리적(Logical)

더보기

정답 : ㅂ. 순차적

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

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

 

[보기]

생성패턴 구조패턴 행위패턴
Singleton Adapter Iterator
Factory Method Bridge Visitor
Abstract Factory Composite Observer
더보기

정답 : Iterator

 

풀이 :

Iterator : 컬렉션 내부 구조를 몰라도 순차적으로 접근 가능

Composite : 객체들을 트리 구조로 구성, 개별 객체와 집합 객체를 동일하게 다룸

Decorator : 객체에 동적으로 기능 추가

Factory : 객체 생성 코드 캡슐화 → 클라이언트는 생성 방식 몰라도됨

Singleton : 클래스의 인스턴스를 하나만 생성

Observer : 객체 상태 변화 시 다른 객체에 자동 통보

Strategy : 알고리즘을 캡슐화하여 런타임에 교체 가능

Adapter : 서로 호환되지 않는 인터페이스를 맞춰줌

Bridge : 추상화와 구현을 분리하여 독립적으로 확장 가능하게 만드는 패턴

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

[예제]

A  →

더보기

정답 : A → D → C → F

 

풀이 : RIP는 홉의 수만 따진다, 만약 OSPF라면 A → D → C → E → F

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

프로세스 도착 시간 서비스 시간
A 0 8
B 1 4
C 2 9
D 3 5
더보기

정답 : 6.5

 

풀이 : SRT(Shortest Remaining Time)으로 남은 실행시간이 가장 짧은 프로세스가 먼저


시간 실행프로세스 대기 완료
0-1 A -  
1-5 B A(7), C(9), D(5) B(5)
5-10 D A(7), C(9) D(10)
10-17 A C(9) A(17)
17-26 C   C(26)
프로세스 대기시간(종료 - 도착 - 실행)
A 9
B 0
C 15
D 2

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

#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;
}
더보기

정답 :

 

풀이 : 

arr = { [1, 2, 3]

           [4, 5, 6]

           [7, 8, 9]}

 

parr[1] = arr[2]

arr[2][1] = 8

*(parr[1]+2) = arr[2][2] = 9

**parr = *(*parr) = *arr[1] = 4

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

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;
    }    
}
더보기

정답 : 25, 20

 

풀이 : 

OE.sum(a, true) → 25

i odd a[i] a[i] % 2 a[i] % 2 != 0 result
0 true 1 1 true 1
1 2 0 false  
2 3 1 true 4
3 4 0 false  
4 5 1 true 9
5 6 0 false  
6 7 1 true 16
7 8 0 false  
8 9 1 true 25

OE.sum(a, false) → 20

i !odd a[i] a[i] %2 a[i] % 2 == 0 result
0 true 1 1 false  
1 2 0 true 2
2 3 1 false  
3 4 0 true 6
4 5 1 false  
5 6 0 true 12
6 7 1 false  
7 8 0 true 20
8 9 1 false  

 

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

#include <stdio.h>
#include <string.h>
 
void sumFn(char* d, const char* s) {
 
    while (*s) {
        *d = *s;
        d++;
        s++;
    }
    *d = '\0'; 
}
 
int main() {
   const 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;
}
더보기

정답 : 10

 

풀이 :

sumFn(str2, str1)

str2의 글자를 str1로 덮어쓰기

first

 

for문 글자수 확인 str[i] 크기는 5

0~4까지 result += i;

0 + 1 + 2 + 3 + 4 = 10

 

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

 

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

 

(              ) Coupling

더보기

정답 : 제어

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

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;
    }
}
더보기

정답 : dcba

 

풀이 : 

calculFn(str, str.length()-1, seen)

str = "abacabcd"

맨 뒷글자부터 로직을 실행, 재귀로 index = 0의 결과값부터 더해가며 나옴

index c seen[c] result c + result
7 d false cba dcba
6 c true cba  
5 b true cba  
4 a true cba  
3 c false ba cba
2 a true ba  
1 b false a ba
0 a false a a

 

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

#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);
}
더보기

정답 : -13

 

풀이 :

swap(a, b) → main 내 변수는 변하지않음

a = 11

b = 19

 

switch(a) → case 11 → default(break문이 없기 때문에)

b += 2 = 21

b += 3 = 24

 

11 - 24 = -13

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

#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

 

풀이 :

a → b → c → NULL 연걸리스트

head = a

a → n2 = b

b → n1 = 20

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

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

정답 : S

 

풀이 :

T를 기준으로 split 진행

result = {"I", "IS", "ES", "S", "RING"}

result[3] = "S"

'이론공부 > 정보처리기사 실기 기출' 카테고리의 다른 글

정보처리기사 실기(23년 3회 기출복원)  (0) 2025.09.16
정보처리기사 실기(24년 1회 기출복원)  (0) 2025.09.14
정보처리기사 실기(24년 3회 기출복원)  (0) 2025.09.13
정보처리기사 실기(25년 2회 기출복원)  (0) 2025.09.11
정보처리기사 실기(25년 1회 기출복원)  (0) 2025.09.09
'이론공부/정보처리기사 실기 기출' 카테고리의 다른 글
  • 정보처리기사 실기(23년 3회 기출복원)
  • 정보처리기사 실기(24년 1회 기출복원)
  • 정보처리기사 실기(24년 3회 기출복원)
  • 정보처리기사 실기(25년 2회 기출복원)
DJ.Kang
DJ.Kang
백엔드 개발 기록 블로그
  • DJ.Kang
    DJ Hello World
    DJ.Kang
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 이론공부
        • 개념
        • 정보처리기사 필기
        • 정보처리기사 실기 기출
        • 네트워크관리사 2급
        • SQLD
      • 시스템설계
      • Java & Spring
        • TIL
        • 트러블슈팅
        • 고도화
        • 알고리즘
        • 코딩테스트
        • Java
        • Spring
        • Thymeleaf
      • 프로젝트
        • coin-trading
        • 트러블슈팅
      • Docker
      • 웹
      • git & github
  • 블로그 메뉴

    • 홈
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    java two-pointer
    java 세수의합
    자료구조
    java
    java arrays.copyofrnage()
    데이터 크기
    java 에라토스테네스의 체
    java 멤버
    java 제어자
    Java 생성자
    java 메서드
    데이터 타입
    프로그래머스 java 기초 트레이닝
    java 유클리드 호제법
    java enhance switch
    java기초
    java super
    Java this
    프로그래머스 java 기초트레이닝
    개발로드맵
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
DJ.Kang
정보처리기사 실기(24년 2회 기출복원)
상단으로

티스토리툴바