전체 글

    하노이타워 알고리즘

    1. 개요 - 하노이탑을 이해하면 보통 재귀함수를 완벽하게 이해할 수 있다고 한다. - 근데 솔직히 난 아직도 재귀가 낯설다. (더 파고들어가야할 듯) - 부분집합 출력하는 문제에도 재귀가 나오는데 부분집합 출력을 공부하면서 재귀가 잘 이해가지 않아서 하노이탑을 다시 살펴본다. 2. 문제 - N사에서 물어본 문제로 기억함 - HanoiTowerSol(5, 'A', 'B', 'C')인 경우 몇번 이동한 것일까?? 아래 해설 참고 3. 코드 4. 해설 HanoiTowerSol(1, 'A', 'B', 'C') 일 때 1번 이동이 있었음.(1번의 출력을 의미) HanoiTowerSol(2, 'A', 'B', 'C') 는 HanoiTowerSol(1, 'A', 'B', 'C')을 2번 호출한다는 것을 알 수 있음..

    개선된 피보나치 함수 구현

    1. 개요 - N사 필기시험에 나왔던 기억이 있다. - 피보나치 함수 개선하기 - 코드 내용 1) Fibo1은 변수 2개만 이용해서 피보나치 수열 구현 2) Fibo2는 다이나믹 프로그래밍 기법을 이용 3) Fibo3은 일반적인 피보나치 수열(매우 비효율적) 4) Fibo4는 메모제이션(memozation)기법 사용 2. 코드 3. 정리 - 다이나믹으로 구현하는 법은 알고있었는데 메모제이션 기법은 처음알게 되었다. - 꼭 기억하자!! - 그리고 메모제이션 기법은 재귀함수 구현에 있어서 많이 사용되는 기법!!! - 재귀의 효율을 극대화시켜줌!!

    트리거(TRIGGER) & 내포된SQL

    트리거트리거는 명시된 이벤트(데이터베이스의 갱신)가 발생할 때마다 DBMS가 자동적으로 수행하는 프로시저(사용자가 정의하는 문)이다.트리거는 데이터베이스의 무결성을 유지하기 위한 일반적이고 강력한 도구이다. ECA규칙E(event) → C(condition) → A(action)의 약자이다.트리거를 명시하려면 트리거를 활성화시키는 사건인 이벤트, 트리거가 활성화되었을 때 수행되는 테스트인 조건, 트리거가 활성화되고 조건이 참일 때 수행되는 문(프로시저)인 동작을 표현해야 한다. 트리거의 단점트리거가 데이터베이스의 일관성을 유지하는데 매우 유용하지만 트리거를 과도하게 사용하면 복잡한 상호 의존성을 야기할 수 있다. 대규모 데이터베이스에서는 복잡한 상호 의존성을 관리하는 것이 어렵다.예를 들어, 하나의 트리..

    데이터 정의어

    ■ 데이터 정의어 1. 스키마의 생성과 제거• 일반적으로 스키마는 릴레이션, 도메인, 제약조건, 뷰, 권한 등을 그룹화한 것이다.• 각 사용자는 권한을 허가받지 않은 한 다른 사용자의 스키마에 속한 데이터를 볼 수 없다. CREATE SCHEMA MY_DB AUTHORIZATION CHOI; • 스키마 내에 릴레이션을 생성할 수 있다. 기존 스키마를 제거하려면 DROP을 사용한다. DROP SCHEMA MY_DB CASCADE CONSTRAINTS; 2. 릴레이션의 정의 그리고 제약조건 예시• 예시로 설명 CREATE TABLE EMPLOYEE ( EMPNO NUMBER NOT NULL, EMPNAME VARCHAR2(10) UNIQUE, TITLE VARCHAR2(10) DEFAULT '사원', MAN..