본문 바로가기
정보처리기사/[최신] 실기 기출

[2022년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

by YUNI Heo 2024. 1. 7.
반응형

 

⭕ [2022년도 3회] 정보처리기사 정처기 | 실기 기출 | 회차별 정리

➡️ 1. [JAVA 코드] mines 출력 값을 작성하시오.

- field의 경우 2차원 배열 형태는 예시처럼 출력된다.
- 이를 참고하여 mines의 2차원 배열 형태를 작성하시오.
#include <stdio.h>

void main() {
    int field[4][4] = {{0, 1, 0, 1}, {0, 0, 0, 1}, {1, 1, 1, 0}, {0, 1, 1, 1}};
    int mines[4][4] = {{0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}, {0, 0, 0, 0}};
    int w = 4, h = 4;

    for (int y = 0; y < h; y++) {
        for (int x = 0; x < w; x++) {
            if (field[y][x] == 0) continue;

            for (int i = y - 1; i <= y + 1; i++) {
                for (int j = x - 1; j <= x + 1; j++) {
                    if (calculate(w, h, j, i) == 1) {
                        mines[i][j] += 1;
                    }
                }
            }
        }
    }

    for (int y = 0; y < h; y++) {
        for (int x = 0; x < w; x++) {
            printf("%d", mines[y][x]);
        }
        printf("\n");
    }
}

int calculate(int w, int h, int j, int i) {
    if (i >= 0 && i < h && j >= 0 && j < w) return 1;
    return 0;
}

[field 출력 결과]

0, 1, 0, 1
0, 0, 0, 1
1, 1, 1, 0
0, 1, 1, 1

정답

1, 1, 3, 2
3, 4, 5, 3
3, 5, 6, 4
3, 5, 5, 3

해설

 


➡️ 2. 다음 설명에 대한 관계대수 기호를 작성하시오.

a) 합집합
b) 차집합
c) 카티션 프로덕트
d) 프로젝트
e) 조인

정답

a) 합집합 - ∪
b) 차집합 - -
c) 카티션 프로덕트 - × 
d) 프로젝트 - π
e) 조인 - ⨝

해설

 


➡️ 3. [용어] 다음 설명에 대한 디자인패턴 용어를 작성하시오.

a) 
- 기능을 처리하는 클래스와 추상 클래스는 이것으로 구별된다.
- 브리지 패턴은 구현과 추상화를 독립적으로 변경할 수 있게 해준다. 
- 새로운 기능을 추가하고 기존 시스템을 변경하지 않고 확장할 때 유용하다.

b)
- 객체의 상태 변화를 다른 객체들에게 전달하는 패턴이다. 
- 이 패턴은 주로 분산 시스템 간에 이벤트를 생성하고 발행하며, 이를 수신해야 할 때 활용된다. 
- 이 패턴은 일대다 관계를 가지고 있다.

정답

a) Bridge
b) Observer

해설

 


➡️ 4. [C 언어 코드] 알맞은 출력 값을 작성하시오.

void main() {
    int result[5];
    int arr[] = {77, 32, 10, 99, 50};

    for (int i = 0; i < 5; i++) {
        result[i] = 1;
        for (int j = 0; j < 5; j++) {
            if (arr[i] < arr[j]) {
                result[i]++;
            }
        }
    }

    for (int k = 0; k < 5; k++) {
        printf("%d ", result[k]);
    }
}

정답

24513

해설

 


➡️ 5. 다음 설명에 대한 내용을 작성하시오.

- 첫번째 네트워크의 주소가 192.168.1.0/26일 때 FLSM을 사용하여 3개의 서브넷으로 분할함
- 두번째 서브넷의 브로드캐스트 IP를 10진수로 변환한 값

정답

192.168.1.127

해설

 


➡️ 6. [용어] 다음 내에 대한 테스트 기법을 작성하시오.

[테이블]

점수 금액
90 ~ 100 700만원
80 ~ 89 500만원
70 ~ 79 300만원
0 ~ 69 0원

[테스트케이스]

| 테스트케이스 | 입력값 | 결과값  |
|-------------|--------|---------|
| 1           | -1     | error   |
| 2           | 0      | 0       |
| 3           | 1      | 0       |
| 4           | 69     | 0       |
| 5           | 70     | 300     |
| 6           | 71     | 300     |
| 7           | 79     | 300     |
| 8           | 80     | 500     |
| 9           | 81     | 500     |
| 10          | 89     | 500     |
| 11          | 90     | 700     |
| 12          | 91     | 700     |
| 13          | 99     | 700     |
| 14          | 100    | 700     |
| 15          | 101    | error   |

 

정답

Boundary Value Analysis

해설

 


➡️ 7. [SQL] 알맞은 출력 값을 작성하시오.

[데이터 명령어]

CREATE TABLE 부서 (
    부서코드 INT,
    부서명 VARCHAR(50),
    PRIMARY KEY (부서코드),
    FOREIGN KEY (부서코드) REFERENCES 직원(부서코드) ON DELETE CASCADE
);

CREATE TABLE 직원 (
    직원코드 INT,
    부서코드 INT,
    PRIMARY KEY (직원코드),
    FOREIGN KEY (부서코드) REFERENCES 부서(부서코드)
);

INSERT INTO 부서 (부서코드, 부서명) VALUES (10, '영업부');
INSERT INTO 부서 (부서코드, 부서명) VALUES (20, '기획부');
INSERT INTO 부서 (부서코드, 부서명) VALUES (30, '개발부');

INSERT INTO 직원 (직원코드, 부서코드) VALUES (1000, 10);
INSERT INTO 직원 (직원코드, 부서코드) VALUES (2000, 10);
INSERT INTO 직원 (직원코드, 부서코드) VALUES (3000, 20);
INSERT INTO 직원 (직원코드, 부서코드) VALUES (4000, 20);
INSERT INTO 직원 (직원코드, 부서코드) VALUES (5000, 20);
INSERT INTO 직원 (직원코드, 부서코드) VALUES (6000, 30);
INSERT INTO 직원 (직원코드, 부서코드) VALUES (7000, 30);
a)
SELECT DISTINCT COUNT(직원코드)
FROM 직원
WHERE 부서코드 = '20';

b)
DELETE FROM 부서
WHERE 부서코드 = '20';
SELECT DISTINCT COUNT(직원코드)
FROM 직원;

정답

a) 3
b) 4

해설

 


➡️ 8. [용어] 다음 설명에 대한 용어를 작성하시오.

a)
- 보안학적 측면에서, 사람들 간의 기본적인 신뢰를 기반으로 하여 비밀 정보를 획득하는 기법입니다.

b)
- 빅데이터와 유사하면서도 구조화돼 있지 않고, 사용되지 않는 '죽은' 데이터를 의미합니다. 
- 이는 일반적으로 수집 후 분석이나 특별한 목적을 위해 활용되지 않는 데이터이며, 저장 공간만 차지하며 보안 위험을 초래할 수 있습니다.

정답

a) 사회공학
b) 다크 데이터

해설

 


➡️ 9. [Python 코드] 알맞은 출력 값을 작성하시오.

TestList = [1, 2, 3, 4, 5]
TestList = list(map(lambda num: num + 100, TestList))

print(TestList)

정답

[101, 102, 103, 104, 105]

해설

 


➡️ 10. [용어] 다음 설명에 대한 보안 용어를 작성하시오.

a)
- 머신러닝을 활용한 IT 시스템 로그 관리 및 분석 보안 솔루션입니다.
- 서로 다른 보안 솔루션 로그를 중앙에서 통합 수집하고 분석할 수 있습니다.
- 네트워크 상태를 모니터링하고 이상 징후를 미리 감지할 수 있습니다.
- 이기종 장비 간 로그의 상관관계를 분석합니다.
- 이상 징후를 행위 및 문맥 기반으로 분석합니다.
- 각 로그의 상관관계를 조건에 따라 검색하여 분석이 가능합니다.
- 이벤트 및 로그의 이상 패턴을 감지하면 알림이 발생합니다.

정답

a) SIEM

해설

 


➡️ 11. [용어] 형상 관리 용어를 고르시오.

a) ATM
b) CVS
c) OLAP
d) DDOS
e) SVN
f) Cyber Kill Chain
g) OLTP
h) GIT

정답

b) CVS
e) SVN
h) GIT

해설

 


➡️ 12. [SQL] 실행 결과에 따른 튜플의 수를 작성하시오.

[조건]

[STUDENT 테이블]에서 컴퓨터과 학생 50명, 전기과 학생 100명, 인터넷과 학생 50명의 정보가 저장되어 있다.

 

a)
SELECT DERP
FROM STUDENT;

b) 
SELECT DISTINCT DEPT
FROM STUDENT;

c)
SELECT COUNT(DISTINCT DEPT)
FROM STUDENT
WHERE DEPT = '인터넷과';

정답

a) 200
b) 3
c) 1

해설

 


➡️ 13. [C 언어 코드] 알맞은 출력 값을 작성하시오.

#include <stdio.h>

int main() {
    int count = 0;

    for (int num = 6; num <= 30; num++) {
        int sum = 0;
        int limit = num / 2;

        for (int divisor = 1; divisor <= limit; divisor++) {
            if (num % divisor == 0) {
                sum += divisor;
            }
        }

        if (sum == num) {
            count++;
        }
    }

    printf("%d", count);

    return 0;
}

정답

2

해설

 


➡️ 14. [용어] 다음 설명에 대한 용어를 작성하시오.

a)
ARM사에서 개발한 하드웨어 기반의 보안 기술인 프로세서(processor) 안의 독립적인 보안 구역은 중요한 정보를 보호하기 위해 따로 마련된 것이다.

b)
사용자가 사이트에 잘못된 주소를 입력하거나 철자를 빠뜨리는 실수를 이용하여 미리 유사한 유명 도메인을 등록하는 행위를 말한다.

정답

a) Trustzone
b) typosquatting

해설

 


➡️ 15. [용어] 다음 설명에 대한 용어를 작성하시오.

- ( a )는 여러 개의 사이트에서 단일 로그인으로 여러 다른 사이트에 자동으로 접속하는 방법을 의미합니다.
- 보통 각각의 시스템과 사이트에서 사용자 정보를 관리하지만, 하나의 사용자 정보를 기반으로 여러 시스템을 통합 인증으로 사용할 수 있도록 합니다.
- 따라서 한 시스템에서 로그인하면 다른 시스템에서도 해당 인증 정보를 확인하고, 있으면 로그인을 처리하고, 없으면 다시 통합 인증을 할 수 있도록 합니다.

정답

a) SSO

해설

 


➡️ 16. [용어] 다음 설명에 대한 스케줄링을 작성하시오.

a 스케줄링)
- Ready Queue에 있는 프로세스 중 CPU 처리 시간이 짧은 순서대로 CPU를 할당하는 비선점형 방식이다.
- 늦게 도착하더라도 CPU 처리 시간이 앞에 대기중인 프로세스보다 짧으면 먼저 CPU를 할당받을 수 있다.

b 스케줄링)
- 프로세스가 도착한 순서대로 디스패치되지만 정해진 시간 할당량에 의해 실행이 제한된다.
- 할당된 시간 안에 완료되지 못한 프로세스는 준비 큐의 맨 뒤에 배치되어 CPU를 독점하지 않고 공평하게 이용될 수 있도록 한다.

c 스케줄링)
- 선점 스케줄링 방식으로 변경한 기법이다.
- CPU를 점유 중인 프로세스보다 남은 CPU 처리 시간이 짧은 프로세스가 Ready Queue에 들어오면 새로 들어온 프로세스가 CPU를 점유할 수 있다.
- 평균 대기 시간이 가장 짧은 알고리즘이지만, 선점형 방식으로 인해 잦은 Context Switching이 발생하고 이로 인한 오버헤드가 커진다.

정답

a) SJF
b) RR
c) SRT

해설

 


➡️ 17. [용어] 다음 설명에 대한 UML 용어를 작성하시오.

- UML은 시스템을 모델로 표현하는 통합 모델링 언어이다.
- UML의 구성 요소는 사물과 ( a )로 이루어진다.
- 구조 다이어그램 중, ( b ) 다이어그램은 객체 타입과 정적인 관계를 다양한 방식으로 표현한다.
- UML 모델링에서 ( c )은 클래스와 같은 모델 요소가 구현해야 하는 오퍼레이션 세트를 정의한다.

정답

a) 관계
b) 클래스
c) 인터페이스

해설

 


➡️ 18. [용어] E-R 다이어그램 용어와 기를 연결하시오.

a) 개체집합 - 관계집합 연결
b) 개체 집합과의 연결
c) 관계집합 - 관계집합의 속성 연결
d) 두 개체집합 관계에서 생성되는 값을 저장하는 속성
e) 같은 속성을 공유하는 개체들의 모임

정답

a) 실선 - (ㄷ)
b) 관계집합 - (ㅂ)
c) 점선 - (ㄹ)
d) 관계집합의 속성 - (ㄴ)
e) 개체집합 - (ㄱ)

해설

 


➡️ 19. [JAVA 코드] 알맞은 출력 값을 작성하시오.

public class Main {
    static int[] createArray() {
        int[] tempArray = new int[4];

        for (int i = 0; i < tempArray.length; i++) {
            tempArray[i] = i;
        }

        return tempArray;
    }

    public static void main(String[] args) {
        int[] intArray;
        intArray = createArray();

        for (int i = 0; i < intArray.length; i++) {
            System.out.print(intArray[i]);
        }
    }
}

정답

0123

해설

 


➡️ 20. [JAVA 코드] 알맞은 출력 값을 작성하시오.

public class Sugoring {
    public static void main(String[] args) {
        int result = 0;

        for (int i = 1; i < 999; i++) {
            if (i % 3 == 0 && i % 2 != 0) {
                result = i;
            }
        }

        System.out.print(result);
    }
}

정답

993

해설

 

반응형