알고리즘과 DB 일부 문제만 정리하였습니다.
최근 기출문제(2019년부터)는 하단 링크를 참고해 주세요.
알고리즘 - 자바
다음 Java 언어의 <코드>와 <입력>을 보고 프로그램을 분석하여 그 실행 결과를 적으시오.
<코드>
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n, i, sum = 0;
n = scan.nextInt();
for (i = 1; i <= n; i++) {
sum += i;
}
System.out.printf("%d", sum);
scan.close();
}
}
<입력>
5
정답
15
해설
1에서 5까지의 합을 구하는 문제입니다. Scanner를 통해 정수 n을 입력받고, for문을 통해 i를 0에서 입력받은 n까지 반복시켜 1씩 증가하는 i의 값을 sum에 순서대로 더한 뒤 마지막에 sum을 출력합니다.
for문에서 i는 1, 2, 3, 4, 5 순으로 값을 가지고 sum에는 1, 3, 6, 10, 15가 순서대로 저장되어 최종 값은 15가 됩니다.
알고리즘 - C언어
다음 C 언어의 <코드>를 실행했을 때 6을 입력한 결과 <출력>으로 나타낸 것이다. 프로그램을 분석하여 괄호 ( )에 가장 적합한 코드를 적으시오.
<코드>
#include <stdio.h>
main() {
int n, i = 1;
scanf("%d", &n);
while(i < 10) {
printf("%d X %d = %d\n", n, i ( ));
i++
}
}
<출력>
6 X 1 = 6
6 X 2 = 12
6 X 3 = 18
6 X 4 = 24
6 X 5 = 30
6 X 6 = 36
6 X 7 = 42
6 X 8 = 48
6 X 9 = 54
정답
n * i
해설
이 문제는 구구단 중 6단을 출력하는 코드에 관한 문제입니다. main 함수에서 첫 줄에 int n, i = 1 로 선언되어 있는데 n에는 문제에서 6이 입력되었다고 지정되어 있습니다. 따라서 while(i < 10)과 while문 마지막 줄 i++에 따라 i는 1 ~ 9까지 증가하게 되는데 <출력> 부분처럼 6단이 출력되려면 n과 i를 곱한 값이 n * i 가 들어가야 합니다.
데이터베이스
SQL과 관련한 다음 설명에서 괄호 (1) ~ (4)에 들어갈 가장 적합한 답을 적으시오.(16점)
<지문>
정규화는 테이블의 속성들이 상호 종속적인 관계를 갖는 특성을 이용하여 테이블을 무손실 분해하는 과정으로, 정규화의 목적은 가능한 한 중복을 제거하여 삽입, 삭제, 갱신 이상의 발생 가능성을 줄이는 것이다. 다음의 테이블은 기존의 테이블에서 부분 함수적 종속을 제거하여 완전 함수적 종속을 만족하는 (1)(이)다.
<학부생> 테이블
학부 | 학과번호 | 입학생수 | 담당관 |
정치대학 | 100 | 200 | 김지성 |
공과대학 | 200 | 250 | 이지연 |
인문대학 | 300 | 300 | 김해인 |
공과대학 | 400 | 170 | 박지민 |
아래는 정규화 과정을 거친 <학부생> 테이블에서 담당관의 이름이 "이"로 시작하는 튜플의 학과번호를 999로 갱신하는 SQL문이다.
UPDATE 학부생 ( 2 ) ( 3 ) = 999 WHERE 담당관 ( 4 ) '이%';
UPDATE문은 테이블에 있는 튜플의 내용을 갱신할 때 사용하는 명령문으로, DML에 해당한다. 다른 DML로는 INSERT, DELETE가 있으며, 각각 새로운 튜플을 삽입하거나 삭제할 때 사용한다.
정답
(1) 제2정규화
(2) SET
(3) 학과번호
(4) LIKE
해설
(1)
정규화의 순서는 다음과 같습니다.
비정규 릴레이션
→ 도메인 원자값 (제1정규화)
→ 부분 함수 종속 제거 (제2정규화)
→ 이행 함수 종속 제거 (제3정규화)
→ 결정자이면서 후보키가 아닌 것 제거(BCNF)
→ 다치 종속 제거 (제4정규화)
→ 조인 속성 이용 (제5정규화)
(2) (3) (4)
UPDATE문은 다음과 같이 작성합니다.
UPDATE 테이블명 SET 속성 = 값 WHERE 조건;
문제처럼 학부생 테이블의 학과번호를 999로 갱신하려면 UPDATE 학부생 SET 학과번호 = 999 WHERE ~생략; 이런 식으로 작성하면 되는데, 이 문제에서는 담당관 이름이 '이'로 시작하는 튜플만 변경하라는 조건이 있으니 WHERE절에 LIKE를 사용하여 UPDATE 학부생 SET 학과번호 = 999 WHERE 담당관 LIKE '이%';로 작성하면 됩니다.
LIKE 사용법
이름이 '이'로 시작하는 경우 LIKE '이%';
이름이 '이'로 끝나는 경우 LIKE '%이';
이름에 '이'가 포함된 경우 LIKE '%이%';
'정보처리산업기사 > 실기 기출문제' 카테고리의 다른 글
정보처리 산업기사 실기 2019년 제3회 기출문제 정리 (0) | 2021.07.08 |
---|---|
정보처리 산업기사 실기 2019년 제2회 기출문제 정리 (0) | 2021.07.07 |
정보처리 산업기사 실기 2018년 제3회 기출문제 정리 (2) | 2021.07.07 |
정보처리 산업기사 실기 2018년 제2회 기출문제 정리 (0) | 2021.07.07 |
정보처리산업기사 실기 2018년 제1회 기출문제 정리 (4) | 2021.07.07 |