잡다한 지식/CS 베이스 12

[한국은행 전산학 기출][2010] DB SQL

문제 은행 데이터베이스 테이블이 아래와 같을 때 물음에 답하시오. 고객(성명, 주소, 나이) 지점(지점명, 주소, 자산) 계좌(계좌번호, 지점명, 잔고, 구분) 예금(성명, 계좌번호) ----------------- 이하 내 풀이를 위한 심볼 -------------- customer(name, addr, age) bank_branch(name, addr, asset) account(number, branch_name, balance, class) deposit(customer_name, account_number) 가. 아래와 같은 조건을 가지고 있는 "계좌" 테이블을 생성하는 SQL을 작성하시오. - 계좌번호는 문자 10자리, 지점명은 문자 20자리, 잔고는 정수, 구분은 문자 10자리이다. - '지..

[한국은행 전산학 기출][2019] 객체지향 언어의 특징

한국은행에서 제공하는 필기시험 기출문제는 해설이 제공되지 않습니다. 이 글에서 제시하는 풀이는 제 풀이일 뿐, 정답이 아닐 수 있습니다. 틀린 부분이나 부족한 부분이 있을 시, 댓글로 남겨주세요. 감사합니다. 이전에 풀었던 새끼 문제들까지 한번에 정리해보자. 문제 프로그래밍 언어와 관련하여 다음 물음에 답하시오. (1) 객체지향언어가 지니는 장점에 대해 간략히 설명하시오. (2) 객체지향언어 중 JAVA는 다중 상속이 불가능하고, C++는 다중 상속이 가능하다. 상속에 있어서 단일 상속과 다중 상속의 차이를 설명하고 다중 상속이 가지는 문제점을 설명하시오. (3) 객체지향언어의 특성인 오버로딩(overloading)과 오버라이딩(overriding)에 대해 간략히 설명하시오. (4) 다음 물음에 답하시오..

[한국은행 전산학 기출][2019] 다중 상속의 문제점

한국은행에서 제공하는 필기시험 기출문제는 해설이 제공되지 않습니다. 이 글에서 제시하는 풀이는 제 풀이일 뿐, 정답이 아닐 수 있습니다. 틀린 부분이나 부족한 부분이 있을 시, 댓글로 남겨주세요. 감사합니다. 객체지향 언어의 큰 특징 중 하나인 상속. 상속 하면 그려러니.. 하겠는데 다중 상속에 관한 문제점을 알아볼 수 있었던 문제였다. 문제 객체지향 언어 중 JAVA는 다중 상속이 불가하고 C++은 다중 상속이 가능하다. 상속(inheritance)에 있어서 단일 상속(single inheritance)과 다중 상속(multiple inhteritance)의 차이를 설명하고 다중 상속이 가지는 문제점을 서술하시오. 풀이 단일 상속은 하나의 조상 클래스만을 가지기 때문에 클래스의 관계가 다중 상속보다 명..

[한국은행 전산학 기출][2010] fork를 이용한 프로세스 생성 과정

문제는 엄청 간단해 보이는데 모르면 못 푸는 그런 기본기 문제.. OS 프 로 세 스 으악 문제 아래 코드가 실행되면 시작 프로세스를 포함하여 총 몇 개의 프로세스가 생성되는가? 단, 프로세스 생성이 실패하는 경우는 없다고 가정한다. int main() { if(fork() > 0) fork(); } 풀이 일단 fork() 함수에 대해 알고 있어야 한다. 어떤 프로그램을 실행 중인 프로세스에서 fork()함수를 호출하면, 새로운 프로세스를 하나 생성하면서 자신은 부모 프로세스가, 새로 생성된 프로세스는 자식 프로세스가 된다. 또한, 자식 프로세스는 부모 프로세스가 자기를 생성한 fork() 다음부터의 모든 작업을 수행하게 되며, 부모 프로세스는 자식 프로세스가 끝날 때 까지 wait한다. 이와 더불어, ..

[한국은행 전산학 기출][2010] 허프만 트리를 이용한 문자열 압축

허프만 트리... 이름과 어렴풋한 트리와 0101101의 비트 나열만 기억나는 나...를 반성해 보고자 풀이를 정리한다. 이 문제는 한국은행에서 공개한 전산학 기출 문제 중, 2010년 전산학술 문제이다. 문제는 다음과 같다. 문제 허프만(Huffman) 압축 알고리즘을 이용하여 ACABFEAFDE의 입력 문자를 압축하려고 한다. 아래 물음에 답하시오. (1) 허프만 트리를 그리고, 허프만 코드를 작성하시오. 데이터 빈도수 등장 확률 A 3 0.3 B 1 0.1 C 1 0.1 D 1 0.1 E 2 0.2 F 2 0.2 (2) '(1)' 문항에서 1글자를 8bit ASCII 코드로 계산하였을 때, 압축률(%)은 얼마인가? (단, 소수 첫째자리에서 반올림하시오.) 풀이 (1) 허프만 트리를 그리고, 허프만 ..

[프로그래밍언어론] 오버로딩(overloading)과 오버라이딩(overriding)의 차이점

객체지향 프로그래밍 언어의 특징 중 하나인 다형성에서 비롯되는 오버로딩과 오버라이딩은 제대로 알아놓지 않으면 헷갈리는 개념이다. 이 두가지 개념은 기술 면접이나 전공 시험에서도 많이 나오는 개념이니, 한번 정리해서 머리에 넣어두자. 오버로딩 (overloading) 오버로딩은 하나의 클래스에 이름은 같지만 매개변수의 수나 타입이 다른 메소드를 추가적으로 선언하는 것이다. 오버로딩의 특징은 다음과 같다. 메소드 이름이 같아야 한다. 파라미터 개수가 달라야 한다. 파라미터 개수가 같을 경우, 데이터 타입이 달라야 한다. 리턴형은 같아도 되고 달라도 된다. (다른 거 다 같고 리턴형만 다르면 오버로딩이 아니다.) 오버라이딩 (overriding) 오버라이딩은 상속관계에 있는 메소드와 동일한 이름, 파라미터를 ..

[프로그래밍언어론] 객체지향 프로그래밍 언어의 특징

객체지향 프로그래밍 언어의 특징은 JAVA를 처음 배우다 보면 이론 부분에 항상 배우는 것이다. 그때 당시에는 오 당연 당연 그렇지 하고 지나가겠지만, 생각보다 특징이 뭐야! 응이 뭐야!라고 물으면 뭐가 둥둥 떠다니긴 하는데 말로 안 나온다. 이번 기회에 정리하고, 이해를 기반으로 암기를 하도록 하자. 1. 캡슐화 (Encapsulation) 객체지향 프로그래밍 언어에서는 객체를 통해 데이터(속성)와 데이터를 처리하는 함수를 하나로 묶는다. 이러한 캡슐화는 정보 은닉을 통해 외부에서 캡슐 내부의 내용이 보이지 않아 오류의 파급 효과가 적다. 또한, 캡슐화된 객체는 재사용이 용이하다. 2. 정보 은닉 (Information Hiding) 캡슐화에서 가장 중요한 개념으로 쓰이는 것이다. 캡슐화의 정보 은닉을..

[Data Structure] Heap

Heap의 기본 개념 (binary) heap 자료구조는 complete binary tree특성을 가지는 배열 객체이다. Heap 객체 구성 요소 heap을 나타내는 배열 A는 다음 두 개의 인자를 가진다. A.length 배열 A의 모든 원소의 개수를 나타낸다. A.heap-size 배열 A의 모든 원소가 heap에 속하지 않을 수 있다. $A[1..A.length]$ 의 값들 중, $A[1..A.heap-size]$에 속한 값만 heap 내부에 있는 원소이다. 배열 A의 원소 중 heap에 속하는 원소의 개수를 나타낸다. 단, $0\leq{A.heap-size}\leq{A.length}$ 를 만족한다. Heap index 계산 tree index의 편의를 위해, tree의 root는 A[1]이다. ..

#define 의 함정... 나만 빠짐

음.. 뭔가 쓰려고 하니까 민망하긴 하지만 나색기 이런것도 까먹었음을 만천하에 공표하는 느낌으로다가 이제 안까먹어야지. 쓸데없이 오밤중에 새벽에 min heap을 구현하겠답시고 열심히 구현을 하다가 구현에서 이상한것도 아니고 쓸데없는것에서 이상한 것을 발견하였다. 무한대를 $2^{31}$ 로 정의하고 싶어서, 다음과 같이 define을 했었다. #define INF 1

정수 범위 무한대 입력 방법

코테를 좀 풀다 보면 항상 ㅎㅇㅎㅇ 오늘도 또 왔슈 하고 나오는 조건들이 있다. 그 중 하나가 바로 int 범위 한정으로 숫자가 들어온다는 것이다. 가령, 문제에서 어떤 수 x가 들어온다고 하면서 x는 $-2^{31}$보다 크거나 같고 $2^{31}$보다 작다 라는 말이 붙을 때가 있는데, 이걸 말하는 것이다. 사실 그냥 이럴 경우 그래 input 받는 변수를 int로 해도 되겠구나 라고 int 타입 변수 선언하고 끝나면 된다. 그런데, 오늘은 max heap을 구현하다가 진짜로 INF를 숫자로 선언할 일이 있어서 약간 띠용했다. $-2^{31}$이나 $2^{31}$을 어떻게 선언해야 할까? 원시적인 방법부터 스마트해보이는 방법 순으로 살펴보자. 목차는 다음과 같다. 암기빵 먹기 조금 쌈빡한 암기빵 먹기..

반응형