Computer Science 156

자료구조 강의 2화 :: 배열, 추상자료형, 희소행렬

자료구조 2화를 듣고 배운내용 주요 용어 배열: 인덱스와 원소값(index, value) 쌍으로 구성된 집합, 각 인덱스는 그 인덱스와 관련된 값을 정의 2차원 배열: 원소값을 특정하기 위해 필요한 인덱스가 2개인 배열 행 우선 저장 방식 행렬: 하나의 행을 연속적으로 메모리에 할당하고, 그 다음 행을 메모리 영역에 할당 열 우선 저장 방식 행렬: 하나의 열을 연속적으로 메모리에 할당하고, 그 다음 열을 메모리 영역에 할당 희소행렬(sparse matrix): 원소값이 0인 원소가 그렇지 않은 원소보다 많은 행렬 배열이란? 원소의 메모리 공간의 물리적인 위치를 순서적으로 결정하는 특징 배열의 순서: 메모리 공간에 저장되는 원소값이 물리적 순서 한 배열안의 원소들이 모두 같은 자료형, 같은 크기 기억공간을..

자료구조 강의 1화 :: 자료, 정보, 알고리즘의 관계

자료구조 1화를 듣고 배운내용 자료구조 공부방법 그림 이해하라 주요 용어 자료: 현실 세계에서 관찰, 측정을 통해 수집된 값(value) or 사실(fact) 정보: 어떤 상황에서 적절한 의사결정(decision)을 할 수 있게 하는 지식, 자료의 유효한 해석이나 자료 상호 간의 관계 알고리즘: 컴퓨터가 특정한 일을 수행하게 하는 명령어 집합 자료형: 자료가 기억될 기억 장소의 유형 예) 정수형, 실수형 추상 자료형: 자료의 복잡한 논리적 성격을 정의하는 형식, 자료 값의 집합과 연산 집합에 대한 명세의 집합(?) 자료와 정보의 관계 I = P(D) Informaton = Process(Data) 자료(데이터) => 처리 => 정보 자료는 컴퓨터에게 빠른 일처리를 만들어 낼 수 있다. 책상만 잘 정리되어..

인공지능 강의 2화 :: (깊이우선, 너비우선, 균일비용) 탐색

인공지능 강의 2화를 보며 배운내용 들어가기전 용어 탐구 상태묘사: 풀고자 하는 문제의 상태를 컴퓨터로 처리하기 위한 자료구조로 표현 연산자: 어떤 상태 => 다른 상태로 변환하는 도구. 변환 테이블, 변환 함수로 구현 상태공간: 정의된 연산자의 집합으로 초기상태로부터 얻을 수 있는 목표상태의 집합으로, 그래프로 표현 가능 맹목적 탐색: 목표 노드에 대한 정보를 사용 X, 정해진 순선에 따라 탐색 경험적 탐색: 목표 노드의 위치와 경험적 정보를 사용하는 탐색 깊이우선 탐색: 탐색 진행방향/깊이방향을 목표로 탐색 너비우선 탐색: 트리 레벨 순서에 따라 노드를 확장하여 탐색 균일비용 탐색: 출발 노드로부터 경로 비용이 가장 작은 노드를 먼저 선택하여 검사하고 확장하는 탐색 문제풀이에 사용될 수 있는 전략 =..

인공지능 강의 1화 :: 지능형 에이전트

인공지능 강의 1화를 보며 배운내용 인공지능 - 프로그래밍으로 인간이 수행할 수 있는 영역으로 확장하고자 한다. 물리적 기호시스템 가설 - 인간이 행하는 지능적 작업을 수행하는 프로그ㅁ 작성이 가능하다는 믿음의 근거 지식공학 - 지식을 어떻게 체계화하고 지식베이스에 축적하며, 축적된 지식을 어떻게 이용하는가를 연구하는 학문 인공지능 탐구 분야 - 기계학습, 자연어 처리, 컴퓨터 시각, 예술, 자동차, 음성처리 등 다양하다 지능형 에이전트 환경으로부터 입력을 받음 센서가 데이터를 입력 환경 상태 인식 행동 결정 효과기로 행동 단순 반응형 에이전트 센서 => 환경 상태 인식 => 조건/행위 규칙 => 행동 결정 => 행동 아쉬운점: 현재 상태만 보고 판단 모델 기반 반응형 에이전트 센서 => 환경 상태 인식..

[알고리즘] 동적 프로그래밍 - 저장 가능 재귀 알고리즘

동적 프로그래밍 큰 문제의 답이 작은 문제의 답이 포함되어 있다. 분할 정복 알고리즘과 비슷하지만 속도가 빠르다, 다른점은 부분 문제의 정답을 저장한뒤 동일 문제에서 저장한 정답을 바로 계산해서 이용한다 피보나치 수의 정의 전 값과 전전 값을 더하는 피보나치 수 f(n) = f(n - 1) + f(n - 2) f(1) = f(2) = 1 f(1) = 1 f(2) = 1 f(3) = f(1) + f(2) = 2 f(4) = f(2) + f(3) = 3 그냥 재귀 알고리즘 유사코드 fib(n) { if(n == 1 or n == 2) then return 1; else return (fib(n - 1) + fib(n - 2)); } 재귀 알고리즘 사용시, 중복 호출이 굉장히 많이 발생한다 -> 비효율 중복되..

[데이터베이스] SQL - 관계형 데이터베이스 표준 언어

SQL 기초 SEQUEL(Structured English Query Language) 이었다 관계형 데이터베이스 표준 언어로 인증(1986년) 특징 데이터 정의(DDL), 조작(DML), 제어(DCL) 무엇(What)을 표시 어떻게(How)는 표시 안함 -> DBMS가 어떻게 처리 관계 대수식 대신 SQL 사용 관계 대수식 연산자 기호는 키보드로 표기하기 어렵기 때문 관계 대수식과 SQL 차이점 관계 대수식: 무엇을 어떻게 하는지 순서로 표현 가능 SQL: 무엇만 표현 관계 대수식: 튜플의 집합 -> 중복 허용 X SQL: 튜플들 순서 없지만 중복 허용 O DDL 문: 데이터 제어문 테이블 생성: CREATE문 CREATE TABLE 테이블명 테이블 삭제: DROP문 DROP TABLE 테이블명 테이블..

[알고리즘] 큐 - 먼저하면 먼저, 늦게하면 늦게

큐(Queue) 먼저 집어 넣은 데이터가 먼저 나온다 First In, First Out: FIFO 구조로 저장하는 자료구조 전단(Front), 후단(Rear)이 있다. 삽입(Enqueue) 뒤에 집어 넣는거다, 그럼 후단이 새로 들어온애로 바뀌겠지 삭제(Dequeue) 제일 먼저 들어온 녀석을 삭제하고, 그 다음 녀석이 전단이 된다. 배열로 큐를 구현할 때 문제점 앞의 것을 제거하면 나머지를 앞으로 땡겨와야한다. 그래서 배열에 큐 잘 안쓴다 순환 큐 배열의 끝과 시작이 이어진 것처럼 전단과 후단 관리 문제점 전단과 후단이 같은 위치면 비었나, 가득찼나? 해결 방법 큐 배열 생성할 때 실제 용량보다 1만큼 크게 만들어 전단과 후단 사이를 비운다 전단과 후단이 같으면 빈 상태 후단이 전단보다 1 작으면 가..

[알고리즘] 스택 - 먼저하면 늦게, 늦게하면 먼저

스택(Stack) 먼저 들어간 요소가 가장 나중에 나온다 Last-In, First Out: LIFO 자료구조 비행기 캐리어처럼 먼저 실으면 늦게 나오고, 늦게 실으면 먼저 나온다. 스택의 삽입 연산: push 스택의 삭제 연산: pop 스택 응용 예시 예시1) 역순 문자열 만들기 [A] [B] [C] [D] 들어올 때 [D] [C] [B] [A]가 나오도록 배열에 push 사용하듯 push(stack, A) push(stack, B) push(stack, C) push(stack, D) 꺼낼 때는 pop 이용 pop(stack) 하면 D pop(stack) 하면 C pop(stack) 하면 B pop(stack) 하면 A 이 나온다. 예시2) 시스템 스택 함수 호출과 복귀를 보면 시스템 스택이다. 예를..

[알고리즘] 리스트 - 선형, 단일 연결, 이중 연결, 원형 연결

리스트 동일한 값이 두 번 이상 나타날 수 있는 셀 수 있는 정렬된 값을 나타내는 자료의 구조 시퀀스(Sequence)라고도 함 종류 선형 단일 연결 이중 연결 원형 연결 선형: 순서를 가지고 있다 순차 방식으로 구현 원소를 논리적인 순서대로 연속하여 저장 원소 삽입 삽입할 빈 자리 만들기 빈 자리 이후의 원소를 한자리씩 뒤로 이동 빈 자리에 원소 삽입 원소 삭제 삭제한 자리 이후의 원소들을 한 자리씩 앞으로 이동 단점 삽입, 삭제가 비효율적 그래서 개선한 방법이 단일 연결 리스트 단일 연결: 저장할 때 그 다음 순서의 자료가 있는 위치를 데이터에 포함 각 노드는 다음 노드를 가리키는 포인터(주소 값)를 가짐 맨 앞부분은 머리(Head), 끝 부분은 꼬리(Tail) 노드 추가 앞 노드가 새 노드를 가르키..

[알고리즘] 선택 알고리즘 - 퀵 정렬과 함께하다

선택 알고리즘 n개의 원소가 불규칙하게 저장된 배열에서 i번재 큰(or 작은)원소를 찾는 알고리즘 정렬과 비슷하다 두 가지 알고리즘 평균적으로 선형시간이 소용되는 알고리즘 최악의 경우에 선형시간이 소요되는 알고리즘 평균적으로 선형시간이 소용되는 알고리즘 배열 A에서 i 번째 원소 찾기 원소가 하나뿐인 경우, 하나 리턴 원소가 다수의 경우, 파티션(퀵 정렬)을 통해 중간값이 몇 번째인지 확인 중간값이 i와 같을 경우, A[파티션 통해 얻은 중간]값 리턴 중간값이 i보다 클 경우, 오른쪽 그룹으로 범위를 좁혀 재귀 중간값이 i작을 경우, 왼쪽 그룹으로 범위를 좁혀 재귀 예시 1 2번째 작은 원소 찾기 [31] [8] [48] [73] [11] [3] [20] [29] [65] [15] 마지막수 15를 기준으..

728x90