CS107 [자료구조] 수학적 귀납법 증명 해당 본문은 학교수업시간에 배운 강의내용을 기반으로 정리하는 요약글 입니다. 정확하지 않은 점이 있으면 지적해주시면 감사하겠습니다. 다들 아는 일반적인 수학적 귀납법 설명하려고 이글 쓰는것이 아닙니다. 사실 귀납법 자체는 고등학교만 정상적으로 나왔으면 다 아는내용이다. 문제는 다음 2가지 측면에서 교수님의 가르침에 큰 놀라움을 얻었기에 이를 공유하고자 글을 써본 것 이다. 1) P(n-1)을 왜 참이라고 가정하는가? 참인지는 어찌알지?? 2) 귀납법을 통해 재귀함수를 어떻게 인식해야 하는가? 수학적 귀납법 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ● 수학적 귀납법의 기본형 (1) Base: P(1)이 참이고 (2) Step: P(n-1) -> p(n) 이 참이라면 .. CS/Data Structure (2021-1) 2022. 1. 22. [시스템 프로그래밍] Parallel CNN 학교에서 수행한 과제를 정리하는 차원에서 적어보는 글 입니다. 문제될시 알려주시면 삭제하겠습니다. Convolutional Neural Networks 1. CNN 이란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 학교 시스템프로그래밍 과제로 CNN(Convolutional Neural Networks)를 만들어보는 시간을 갖게 되었다. CNN이란 간단히 말하면 딥러닝에서 여러 사물의 이미지를 인식시킨후, 예시를 보여주어 이것이 무엇에 해당하는지를 이전에 학습한 데이터에서 찾아 ouput을 도출하는 것이다. 우리는 그중에서 convolution layer와 pooling layer를 구현하는것이 수업 과제였다. C를 기반으로 Linux환경에서 Messa.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] wait 함수 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1. wait 이란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 보편적으로 부모 process는 자식 process들중 어떠한 하나가 종료되었을때 자식에 대한 좀더 많은 정보를 얻고자 한다. 만일 자식 process가 종료될때 완전히 사라진다면 예상할수 있듯 부모 process에서 조사할 수 있는 정보마저 사라진다. 따라서 UNIX의 초기 설계자들은 자식 process가 부모 process보다 먼저 죽을 경우 커널이 자식 process를 특수한 Zombie process 상태로 바꾸도록 설계하였다. Zombie pr.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] Zombie Process : 좀비 프로세스 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1. Zombie process 란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 process가 실행을 마쳤지만 부모process에서 종료코드를 읽어가지 않은, 즉 여전히 시스템의 resource를 소비하고 있는 상태이다. 원래 child process가 종료된 경우 부모process가 child process의 뒷처리 작업(reaping) 을 해주어야 정상적으로 종료가 되는데, child process가 종료후 parent가 정리작업을 하지않은 상태를 말한다. 좀비 process는 최소한의 기본 뼈대만 유지할만.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] fork 함수 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1. fork란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 간단히 새로운 process를 만드는 것인대 exec와 다른점이 있다면 parent process를 그대로 유지하면서 child process가 따로 생기는 것 이다. 두 프로세스 모두 계속 실행 상태이며 fork()로 인해 생성된 process는 아무일도 없었던 것처럼 계속 실행된다. 2. 함수의 정의 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ▶ 우선 함수의 prototype을 알아본후 하나씩 설명해 나가겠다 ▶.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] exec 함수들 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 리눅스 시스템프로그래밍 2판을 참고하였습니다. 참고로 저는 WSL2 환경에서 공부중 입니다. 1 exec 함수란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 간단히 새로운 process가 실행되는 것 이다. 기존에 실행되고 있던 process의 내용을 대체한다음 program counter를 초기화후 다시 main함수의 첫부분부터 새롭게 읽어들인다. 새로운 프로그램의 실행(executing)이라 하며 이 기능은 exec류 시스템 콜에서 제공한다. 2 함수의 정의 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ▶ 우선 함수의 prototype을 알아본후 하나씩 설명해 나가겠다.. CS/System Programming (2021-2) 2022. 1. 19. [시스템 프로그래밍] Process : 프로세스 내가 공부한후 후에도 참고할겸 작성하는 글 입니다. 참고로 저는 WSL2 환경에서 시스템프로그래밍을 공부중 입니다. 1. Process란 무엇인가? " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 전공서적에서 찾아보면 process는 Operating system's abstraction for a running program이라 나와있는대, 이를 그대로 직역하면 "운영체제에서의 실행중인 프로그램을 추상화 한것" 이라 번역할수 있겠다. 간단히 설명을 덧붙혀 보면 우리가 사용하는 윈도우os상에서 Excel 프로그램(program)을 실행하면 하나의 실행중인 Excel process가 생성된다. 당연히 여러 Excel 창을 띄워놓고 동시에 멀티테스킹을 하는것은 여러 pr.. CS/System Programming (2021-2) 2022. 1. 19. 뇌를 자극하는 C++ STL : 12장. string 컨테이너 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 12장. string 컨테이너 string은 표준 라이브러리 이지만 STL에는 포함시키지 않는다. string은 문자만을 원소로 저장하고 문자열을 조작할 목적으로 만들어진 컨테이너 입니다. string " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 다음 코드는 string의 생성자를 이용한 문자열 초기화 코드이다. #include #include using namespace std; int main() { string st("zbqmgldjfh"); string s1; string s2("Hello!"); string s3("Hello!", 3); string s4(3.. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 11장. 컨테이너 어댑터 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 11장. 컨테이너 어댑터 컨테이너 어댑터는 다른 컨테이너의 인터페이스를 변경한 컨테이너 이다. STL에는 stack, queue, priority_queue 3가지 컨테이너 어댑터가 있다. stack " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 stack 어댑터를 적용시킬 컨테이너는 empty(), push_back(), pop_back(), back(), size() 인터페이스를 지원해야한다. 따라서 이러한 인터페이스를 제공하는 vector, deque, list는 어댑터를 적용시켜 stack으로 사용할 수 있다. 다음 코드를 통하여 확인해 보자, #include .. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 10장. 반복자 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 10장. 반복자 반복자는 컨테이너의 원소를 순회하고 접근하는 일반화된 방법을 제공한다. 반복자의 종류 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 - 입력 반복자: 전방향 읽기(istream) - 출력 반복자: 전방향 쓰기(ostream) - 순방향 반복자: 전방향 읽기, 쓰기 - 양방향 반복자: 양방향 읽기, 쓰기 - 임의 접근 반복자: 랜덤 읽기, 쓰기 X::iterator와 X::const_iterator " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 아 처음볼때 X가 뭐지?? 이런생각이 들 수 있는데 컨테이너를 표시한거다. v.. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 9장. 함수 객체 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 9장. 함수 객체 STL에서는 다양한 함수 객체를 제공한다고 한다. STL의 함수 객체는 클라이언트 코드 에서 만든 함수를 callback형식으로 다른 구성 요소에 반영하기 위해 사용된다. 많은 알고리즘이 STL함수 객체를 알고리즘의 인자로 받아 작동한다. 함수 객체는 헤더에 정의되어 있다. 나같은경우 함수 객체보다는 Functor라는 단어가 입에 붙었기에 Functor라는 말을 주로 사용하겠다. STL의 함수 객체의 분류 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 ▶ 일반 함수 객체: 특정 기능을 수행하는 함수 객체 - 산술 연산 함수 객체 - 비교 연산 함수 객.. CS/C++ 2022. 1. 18. 뇌를 자극하는 C++ STL : 8장. 알고리즘 내돈내고 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 가겹게 포스팅 하겠습니다. 1) 8장. 알고리즘 STL에는 100여개의 알고리즘이 있으며, 크게 7개로 분류가능 - 원소를 수정하지 않는 알고리즘 - 원소를 수정하는 알고리즘 - 제거 알고리즘 - 변경 알고리즘 - 정렬 알고리즘 - 정렬된 범위 알고리즘 - 수치 알고리즘 이중 2개정도만 글로 아주 간단히 정리하겠습니다. 원소를 수정하는 알고리즘 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 - transform() 순차열의 모든 원소에 사용자의 의도를 적용시키려면 for_each() 나 transform() 알고리즘을 상요합니다. trandform()이 for_each() 알고리즘과 다른점은 원본은 .. CS/C++ 2022. 1. 18. 이전 1 2 3 4 5 6 7 8 9 다음