반응형

알고리즘과 DB 일부 문제만 정리하였습니다.

 

최근 기출문제(2019년부터)는 하단 링크를 참고해 주세요.

 

정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회)

정보처리 산업기사 실기 시험은 2017년 한 번 개정되고 내년에 NCS로 다시 개정을 앞두고 있습니다. 이 글에서는 2019년 1회부터 가장 최근에 있었던 2021년 1회까지 어떤 문제가 출제되었는지 정리

developer-rooney.tistory.com

알고리즘 - C언어

 

다음 C언어로 구현된 팩토리얼 계산 프로그램에서 (1), (2)에 들어갈 가장 적당한 변수와 조건식을 C언어 코드로 적으시오.

 

#include <stdio.h>

int Factorial(int n) {

    if (   (1)    )
        return;
        
    else
        return (2);

}

void main() {

    int i;
    printf("숫자를 입력하시오 : ");
    scanf("%d", &i);
    printf("%d! : %d\n", i, Factorial(i));

}

 

정답

 

(1) n == 1

(2) n * Factorial(n-1)

 

 

해설

 

재귀함수를 이용한 팩토리얼 문제입니다. 팩토리얼은 '차례곱'이라는 의미로 정수 n이 있을 때 n!은 1부터 n까지의 곱을 의미합니다. 재귀함수는 특정 조건과 만날 때까지 자기 자신을 반환하는 함수인데 이 문제의 Factorial(int n) 함수도 재귀함수입니다. Factorial(int n) 함수는 매개변수로 정수 n을 입력받아 1부터 n까지의 곱을 반환합니다. 이 때 팩토리얼의 시작인 1을 만났을 때 재귀함수의 반복이 종료되어야하므로 (1)에는 n == 1이 입력되고, 그 전까지는 return을 통해 계속하여 자기 자신을 호출하면서 매개변수로 입력된 값을 1씩 낮춰야하므로 (2)에는 n * Factorial(n-1)이 들어갑니다.

 

 

알고리즘 - Java

 

다음 Java 언어로 구현된 프로그램을 분석하여 그 실행 결과를 적으시오.

 

public class Test {

    public static void main(String[] args) {
    
       int[] a = {10, 2, 3, 4, 6, 7, 6, 3, 2};
       
       int i = a.length - 1;
       
       int cnt = 0;
       
       while( i >= 0) {
       
           if (a[i] == 2) {
               cnt++;
           }
           i--;
       
       }
       System.out.print(cnt);
    }

}

 

정답

 

2

 

해설

 

2의 개수를 출력하는 문제입니다. a는 정수 배열, i는 a의 마지막 인덱스 값을 저장하는 정수 변수, cnt는 배열 a에서 2를 찾을 때마다 1씩 증가시켜 총 개수를 담는 변수입니다.

 

while문의 조건을 보면 i가 0보다 크거나 같을 때까지만 반복을 하는데 i의 값은 8이므로 while문이 반복될 때마다 a[i]를 통해 값을 하나씩 꺼내면서 if문의 조건 a[i] == 2인지를 비교합니다.

 

배열 a에는 2가 2개 있기 때문에 답은 2가 됩니다.

 

 

데이터베이스

 

다음 데이터베이스와 관련된 설명에 가장 적합한 용어를 빈칸 (  1  ), (  2  )에 각각 적으시오.

 

스키마는 데이터베이스의 전체적인 구조와 제약조건에 대한 명세를 기술, 정의한 것을 말하며, 스킴(Scheme)이라고도 한다. 스키마의 구조는 내부 스키마, 개념 스키마, 외부 스키마 3단계로 구분하며 각 단계는 상호 독립적인 의미를 갖는다. 각 단계의 분리 영역을 다음과 같이 구분하여 지정한다.

 

(  1  ) 독립성 : 외부 스키마가 변경되어도 개념 스키마가 영향을 받지 않는다는 것을 의미한다. 즉, 논리적 구조가 변경되어도 응용 프로그램에는 영향을 미치지 않는다.

 

(  2  ) 독립성 : 내부 스키마가 변경되어도 외부 스키마와 개념 스키마는 영향을 받지 않는다는 것을 의미한다. 저장 장치의 구조 변경이 응용 프로그램이나 개념 스키마에 영향을 미치지 않는다.

 

정답

 

(  1  ) : 논리적

(  2  ) : 물리적

 

해설

 

(  1  ) : 지문에 논리적 구조에 관한 설명이 있으므로 논리적 독립성에 대한 설명입니다.(  2  ) : 지문에 저장 장치에 관한 설명이 있으므로 물리적 독립성에 대한 설명입니다.

반응형
반응형

Java의 .length, .length(), .size()

 

Java에서 길이를 구하는 대표적인 메소드는 .length.length(), .size()가 있습니다.

 

.length는 배열의 길이를 확인할 때 사용되고, .length()는 문자열의 길이를, .size는 Collections Framework의 ArrayList의 길이를 확인할 때 사용합니다.

 

종류 메소드
배열 .length
문자열 .length()
ArrayList .size()

 

public class Exam {

    public static void main(String[] args) {
    
        String word = "Hello World";
        
        int[] array = {1,2,3,4,5};
        
        System.out.println(word.length());
        
        System.out.println(array.length);
    
    }
    
}

 

<출력>

 

11

5

 

이차원 배열 .length

 

이차원 배열에서는 .length로 행과 열의 길이를 알 수 있습니다.

 

변수명.length 는 배열의 행 수를 의미하고, 변수명[0].length 는 배열의 0번째 행의 총 길이를 구하게 됩니다.

 

public class Exam {

    public static void main(String[] args) {
    
        int[][] array = new int[6][7];
        
        System.out.println(array.length);
        System.out.println(array[0].length);
    
    }

}

<출력>

 

6

7

반응형

'Java > Java 기초' 카테고리의 다른 글

[Java] StringUtills.equals(), equals() 차이  (0) 2021.10.01
[Java] Optional  (0) 2021.07.22
[Java] 증감 연산자 기초  (0) 2021.07.06
[Java] 연산자의 종류  (0) 2020.12.30
[Java] String 배열  (0) 2020.12.25
반응형

알고리즘과 DB 일부 문제만 정리하였습니다.

 

최근 기출문제(2019년부터)는 하단 링크를 참고해 주세요.

 

정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회)

정보처리 산업기사 실기 시험은 2017년 한 번 개정되고 내년에 NCS로 다시 개정을 앞두고 있습니다. 이 글에서는 2019년 1회부터 가장 최근에 있었던 2021년 1회까지 어떤 문제가 출제되었는지 정리

developer-rooney.tistory.com

 

알고리즘 - Java

 

다음 Java 프로그램을 실행했을 때 나오는 출력을 쓰시오.(5점)

 

public class Exam {

    static void initFunc(int[][] a) {
        for(int i = 0; i < a.length; i++) {
            for(int j = 0; j < a[i].length; j++) {
                a[i][j] = 0;
            }
        }
    }

    static void fillFunc(int[][] a) {
        int n = 1;
        for(int i = 0; a.length; i++) {
            for(int j = i; j < a[i].length; j++) {
                a[i][j] = n;
                n = n + 1;
            }
        }
    }
    
    static void printFunc(int[][] a) {
        for(int i = 0; i < a.length; i++) {
            for(int j = 0; j < a[i].length; j++) {
                if(a[i][j] != 0) {
                    System.out.printf("%3d", a[i][j]);
                }else {
                    System.out.print("   ");
                }
            }
            System.out.println();
        }
    }
    
    public static void main(String[] args) {
        int[][] M = new int[5][5];
        
        initFunc(M);
        fillFunc(M);
        printFunc(M);
    }
}

 

정답 

 

1  2  3  4  5

   6  7  8  9

      10 11 12

          13 14

              15

 

해설

 

계단을 출력하는 문제입니다. main 메소드에서 실행된 메소드들을 먼저 살펴보고 위에서 어떻게 정의되었는지 살펴봅니다. 모든 메소드에는 매개변수로 2차원 배열을 받고 있고, 반환 값은 없으니 실행만 하면 됩니다.

 

initFunc는 2차원 배열 값을 모두 0으로 초기화합니다.

 

fillFunc는 2중 for문을 사용하여 정수 n을 1씩 증가시키며 넣어주는데 바깥 for문에서는 정수 i는 0부터 a.length 전까지, 즉 4까지 반복되고, 안쪽 for문에서는 정수 j가 i의 값부터 a[i].length까지 반복하기 때문에 i가 0일 때는 0부터, 1일 때는 1부터 .. 4까지 반복되며 1씩 증가하는 n값을 넣어줍니다.

 

마지막 메소드 printFunc는 매개변수로 들어온 2차원 배열을 출력해주는 역할을 하니 위의 정답처럼 적으시면 됩니다.

* 문제에서 "%3d"가 있는데 시험에서는 띄어쓰기를 확인 안 하기 때문에 굳이 세 칸을 정확하게 확보할 필요가 없습니다.

 

 

알고리즘 - C언어

 

다음 C언어 프로그램을 실행할 경우, 아래와 같이 출력된다. C언어 프로그램상의 빈 줄에 들어갈 적절한 코드를 입력하시오.

 

<출력결과>

 

5

11

23

47

95

 

<코드>

#include <stdio.h>

void main() {
    recursive(5);
}

int recursive(int n) {

    int i;
    if (n < 1) {
        return 2;
    }else {
        i = ( 2 * ________ ) + 1;
        printf("%d\n", i);
        return i;
    }

}

정답

 

recursive(n-1)

 

해설

 

재귀함수에 관한 문제입니다. 재귀함수 관련 풀이는 하단 링크의 2017년도 문제를 참고해 주세요.

 

정보처리산업기사 실기 2017년 제1회 기출문제 정리

알고리즘과 DB 일부 문제만 정리하였습니다. 최근 기출 문제(2019년부터)는 하단 링크를 참고해 주세요. 정보처리산업기사 실기 출제 유형 및 최근 기출 문제 정리(19년 1회부터 21년 1회) 정보처리

developer-rooney.tistory.com

 

 

데이터베이스

 

1. SQL은 관계 데이터베이스에서 사용되는 대표적인 언어로 SQL에는 크게 DDL, DML, DCL로 나누어진다. 아래 보기에 나열되어 있는 명령어 중 DML과 DDL에 해당하는 명령어를 선택하시오.

 

<보기>

CREATE, SELECT, ALTER, INSERT, COMMIT, DELETE, GRANT, ROLLBACK, UPDATE, REVOKE, DROP

 

1) DML :

2) DDL :

 

정답

 

1) DML : SELECT, INSERT, DELETE, UPDATE 

2) DDL : CREATE, ALTER, DROP

 

해설

 

정의, 조작, 제어어를 구분하는 문제입니다.

 

 

2. 다음 데이터베이스와 관련된 설명과 부합하는 빈 칸 (1) ~ (5)에 알맞은 용어를 적으시오.(15점)

 

관계 데이터 모델은 자료의 저장 형태를 2차원 구조의 표(테이블)로 표현하는 방법을 말한다. 관계 데이터 모델에서 (1)(은)는 속성들로 구성된 표 구조로 표현된다. (1)(을)를 구성하는 각 열을 속성이라고 하고 (1)의 한 행을 구성하는 속성들의 집합을 튜플이라고 한다. 하나의 속성이 가질 수 있는 값의 범위를 (2)(이)라 하며, (2)(은)(는) (1)(을)를 만들 때 속성의 값으로 올 수 있는 범위를 제한함으로써 범위 외의 값은 올 수 없도록 해야 한다. 예를 들어, '학년' 속성의 경우 속성값의 범위를 1, 2, 3, 4로 제한하며, '학년' 속성에는 그 외의 값은 입력될 수 없다.

 

다음은 '학번', '이름', '학년', '수강과목', '점수' 속성으로 구성된 (1)(을)를 SQL문을 통해 <성적>테이블로 구현한 것이다.

 

<성적>

* 속성만으로 풀 수 있어 테이블은 생략하겠습니다.

 

위와 같이 생성된 <성적>테이블을 대상으로 <지시사항>을 실행하는 SQL문은 다음과 같다.

 

<지시사항 및 SQL문>

* <성적>테이블에서 '데이터베이스' 과목을 수강하는 학생 중 점수가 80점 이상인 학생의 이름을 출력하시오.

→ SELECT 이름 FROM 성적 WHERE 수강과목 = '데이터베이스' (3) 점수 >= 80;

 

* <성적>테이블에서 수강과목별 점수의 평균이 85점 이상인 수강과목을 출력하시오.

→ SELECT 이름 FROM 성적 GROUP BY 수강과목 = (4) AVG(점수) >= 85;

 

* <성적>테이블에서 '빅데이터개론'을 수강한 학생의 점수를 모두 0으로 바꾸시오.

→ UPDATE 성적 (5) 점수 = 0 WHERE 수강과목 = '빅데이터개론';

 

정답

 

(1) 릴레이션

(2) 도메인

(3) AND

(4) HAVING

(5) SET

 

해설

 

데이터베이스의 개념과 SQL문에 관한 문제입니다. (3)은 WHERE절의 조건을 여러 개 입력할 때 연결을 위한 AND가 들어가게 되고 (4)는 GROUP BY절에서 조건을 넣는 HAVING 키워드가 들어갑니다. (5)는 UPDATE문의 문법에 맞게 SET이 입력되어야 합니다.

반응형
반응형

용어 명칭 혹은 내용이 비슷한 용어를 위주로 정리하였습니다.

 

기출 문제 총 정리는 하단 링크를 참고해 주세요.

 

정보처리산업기사 업무 프로세스 용어 정리

정보처리 산업기사 실기에서 업무 프로세스 영역은 15점 내외로 출제됩니다. 문제 유형에는 암기가 필요한 용어 문제와 주어진 지문 내에서 답을 찾는 유형으로 나눌 수 있습니다. 해당 글은 업

developer-rooney.tistory.com

업무 관리, 시스템 관련

 

ERP : 생산, 판매, 자재, 인사, 회계 등 기업의 전반적인 업무 프로세스를 하나의 체계로 통합 및 재구축하여 관련 정보를 서로 공유하고 이를 통해 신속한 의사결정 및 업무 수행이 가능하도록 도와주는 패키지 시스템이다.

 

SCM(Supply Chain Management) : 제품이 생산되어 판매되기까지의 모든 공급 과정을 파악, 관리하는 경영 전략 시스템이다. 

 

CRM(Customer Relationship Management) : 고객의 요구나 의견을 분석하여 고객의 성향과 욕구를 충족시키는 마케팅을 실시함으로써 고객 관리 비용을 최소화하고 지속적인 기업 가치의 상승을 목적으로 하는 고객 중심의 경영 기법을 의미한다. 고객 정보를 세부적으로 분류하여 고객의 구매 관련 행동을 지수화하고, 신규 고객 유치, 장기 고객 관리, 잠재 고객 발굴 등과 같은 사이클을 통해 고객과의 관계를 관리한다.

 

CPM(Corporate Performance Management) : 기업 경영 환경에 효과적으로 대처하기 위해 예측 경영을 통한 최적의 의사 결정을 내릴 수 있게 해주는 시스템이다. 변화하는 경영 환경에 대응하여 경영 계획, 성과 분석, 예측, 전략 분석, 시뮬레이션 등 일련의 프로세스를 연계함으로써 효과적인 전략 수립이 가능하고, 원가를 최소화 할 수 있는 생산 장소 및 유통 경로 등 다양한 의사 결정에 활용할 수 있어 시나리오 경영의 필수 시스템으로 인식되고 있다.

 

BPM(Business Process Management) : 비즈니스 프로세스 최적화 및 관리 목표를 달성할 수 있도록 엔드 투 엔드 비즈니스 프로세스를 모델링, 분석, 최적화하는 기법이다. 자주 반복되거나 진행중이거나 예측 가능한 업무와 프로세스에 BPM 방법론을 적용할 수 있다.

 

KMS(Knowledge Management System) : 기업 내의 지식을 관리하기 위한 분산 하이퍼 미디어 시스템으로 기업 환경이 지적 재산의 중요도가 부각되는 지식 기반 사회로 급격히 이동함에 따라 기업을 지식이라는 관점에서 새롭게 조명하는 접근 방식이다.

반응형

+ Recent posts