전체 글

기록.
알고리즘/자료구조

dfs로 순열, 조합 구하기

2022.02.08 아직까진 조금 어렵다.. 이해가 팍 안되는 느낌 2022.02.14 중복순열 추가 dfs로 순열 구하기 void dfs(int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) { cout m; dfs(0); return 0; } dfs로 조합 구하기 void dfs(int num, int cnt) { if (cnt == m) { for (int i = 0; i < m; i++) cout m; dfs(1,0); return 0; } dfs로 중복조합 구하기 #include using namespace std; int n, m; int arr[9]; bool visited[9]; void dfs(int num, int cnt) { if (cnt ..

AI

인공지능 역사

인공지능의 역사에 대해 알아보자. ​ 인공지능 역사(초기단계) 기원전 5세기 경으로 거슬러 올라간다. 이때 활동했던 수학가는 아리스토 텔레스가 있다. 어쩌면 인공지능의 시작이라 볼 수 있는 삼단논법, 귀납법, 연역법과 Knowledge Representation(앎의 분류)를 아리스토 텔레스가 정의한다. 앎의 분류란, 쉽게 말해 파충류, 포유류.. 등과 같이 분류하는 것을 말한다. 사실 이 때까지는 인공지능과 무슨 연관이 있지 라고 생각할 수 있다. ​ 이후 한참이 지나 1920년대, 폰 노이만의 Min-Max 게임 이론이 등장한다. (중세는 과학의 암흑기라고도 한다) 게임이론 이외에도 폰 노이만은 Simulation, Cybernetics, Singularity 와 같은 영역들을 두루 연구한다. ​ 이..

AI

인공지능 소개

※ 이 글은 한국항공대학교 지승도 교수님의 저서 "꿈꾸는 인공지능"의 내용을 기반으로 작성되었음을 알립니다. 인공지능, 사물 인터넷, 빅데이터 등 지능정보기술을 통해 보다 지능적인 사회로 진화함을 의미한다. '초연결' 과 '초지능'을 특징으로 한다. ​ 그렇다면 그 중에서도 인공지능이란 무엇일까 인공지능이란, 감각하고 판단하고 행위하는 방법에 관한 연구로서, 앎을 표현하고 활용하는 시스템이다. ​ 인공지능을 과연 '존재'로써 바라볼 수 있을까? 우리는 현재 소위 '약 인공지능'이라 불리는 AI과 같이 살아가고 있다. 단순히 기계에 불과한 것들에서 인공존재까지 점차 발전해나가는 AI, 이들을 과연 존재로써 바라볼 수 있을까에 대한 해답을 차근차근 알아가보자.

알고리즘/자료구조

에라토스테네스의 체 및 소수 구하기

에라토스테네스의 체(sieve of Eratosthenes) = >N 이하의 소수(prime number)를 모두 정확히 찾아내는 도구 case1. O(N^2) #include #include using namespace std; const int MAX = 1000; int main(){ vector v; for(int i=2; i

알고리즘/자료구조

자료구조 2장 - 정렬, 탐색, 재귀, 순열 그리고 복잡도에 대해서

정렬 - 선택 정렬 void sort(int* a, const int n) { // n개의 정수 a[0]부터 a[n-1]까지 비감소순 정렬 for (int i = 0; i < n; i++) { int j = i; //a[i]와 a[n-1]사이에 가장 작은 정수 값을 찾음 for (int k = i + 1; k < n; k++) { if (a[k] < a[j]) { j = k; // 교환 } } swap(a[i], a[j]); } } 제일 작은 정수를 찾아 앞으로 보내는 작업을 계속 반복한다. ​ 탐색 이원탐색(binary search) int binarySearch (int arr[], int low, int high, int key) { while (low key) high = mid - 1; else..

알고리즘/자료구조

자료구조 기본개념

우리가 다룰 자료구조라는 것은, 데이터 구조라고도 하며 크게는 순차구조와 비 순차구조가 있다. ​ 순차구조(sequential structure) 자료의 논리적 순서(logical sequence)가 물리적 인접성으로 표현되는 구조로, 대표적 예시로는 스택(LIFO)과 큐(FIFO)가 있다. ​ 비순차구조(nonsequential structure) 자료의 논리적 순서와 물리적 인접성이 무관한 구조로 논리적 순서를 표현하기 위한 별도의 방법이 필요한 구조로, 대표적 예시로는 트리와 그래프 등이 있다. ​ 자료구조뿐만 아니라 OOP 역시 같이 다룰 예정인데, 객체지향이란, 캡슐화 상속 다형성을 모두 만족하는 프로그래밍 기법을 말한다. ​ 객체지향의 장점 1. 개발의 간소화 - 복잡한 작업을 부분 작업들로 ..

beomseok99
beomseok_Oh