make 와 Makefile make 와 Makefile make 와 Makefile make & Makefile 이란? make를 쓰는 이유 예제 기본적인 컴파일 과정 make를 이용한 컴파일 과정 Makefile 의 구성 Makefile의 기본구조 Makefile 작성규칙 make 예제 따라해보기 Makefile 개선하기 : 매크로 사용 Makefile 매크로 사용 예제 Makefile 개선하기2 : 내부 매크로 사용 정리 끝 make & Makefile 이란? SHELL 에서 컴파일을 해보셨다면, make 명령어로 컴파일을 실행하는 경우를 자주 보셨을 것입니다. Makefile이 있는 디렉토리에서 make 만 치면 컴파일이 실행된다?? 어떻게 이런 일이 일어날 수 있는 것일까요? 왜냐하면 make는..
Bubble Sort : 거품 정렬 Bubble Sort : 거품 정렬 Bubble Sort : 거품 정렬 소개 정렬과정 알고리즘 분석 애니매이션 예시 구현 정리 끝 소개 Bubble Sort는 인접한 두 수를 비교하여 큰 수를 뒤로 보내는 간단한 정렬 알고리즘으로 의 시간복잡도를 갖습니다. 다른 정렬 알고리즘에 비해 속도가 상당히 느린 편이지만, 코드가 단순하기 때문에 자주 사용됩니다. 일반적으로 가장 빠른 정렬 알고리즘은 Quick Sort로 시간 복잡도 입니다. 원소의 이동이 거품이 수면으로 올라오는 듯한 모습을 보이기 때문에 Bubble Sort라는 이름을 가지게 되었다고 하네요^^ 아래 버블 소트의 애니매이션 예시에서 정말 거품 같은지 직접 확인해 보시기 바랍니다. 정렬과정 다음과 같이 다섯 개..
PintOs 시작하기 PintOs 시작하기 PintOs 시작하기 PintOs 소개 pintos가 뭐지? 왜 PintOs를 사용할까? PintOs 실행 과정 PintOs 설치하기 1. Ubuntu 환경 준비하기 2. gcc-4.4 설치 3. bochs 설치 4. PintOs 설치 PintOs 소개 pintos가 뭐지? PintOs는 2004년 스탠포드 대학에서 만들어진 교육용 운영체제입니다. PintOs는 x86 아키텍처를 위한 운영체제 이며 Bochs나 QEMU같은 x86 시뮬레이터를 사용해서 작동합니다. x86 아키텍처는 인텔이 개발한 마이크로 프로세서 계열과 이 프로세서들에서 사용한 기계어 명령어 집합을 의미합니다. pintos에서 17가지의 과제를 수행하며 User Program, Thread, V..
Counting Sort Counting Sort Counting Sort 소개 정렬 과정 애니메이션 예시 구현 정리 끝 소개 Counting Sort는 정렬 알고리즘으로 의 시간복잡도를 갖습니다. 반면 일반적 상황에서 가장 빠른 정렬 알고리즘인 Quick Sort의 평균시간복잡도는 입니다 (최악의 경우는 n^2).Counting Sort는 어떻게 이렇게 빠를까요? 그럼 왜 대부분의 정렬이 필요한 상황에서 더 빠른 Counting Sort를 안 쓰고 Quick Sort를 쓸까요?Counting Sort가 어떻게 작동하는지 이해하고 나면 위 의문에 대한 답을 스스로 할 수 있을 겁니다! 정렬 과정 다음과 같은 수열 A를 정렬 해야하는 상황을 생각해봅시다. 위 수열을 정렬하면 아래와 같은 수열 B를 얻습니다..
배달 문제 배달 문제 최단거리 bfs dp 문제 요약 링크 : https://www.acmicpc.net/problem/1175 장애물(#)과 지나갈 수 있는 곳(.)으로 구성된 격자판안에 있는 시작점(S)에서 출발해서 두 군데(C)에 배달하는데 걸리는 최소시간을 구하는 문제다. 이때 같은 방향으로 두번 이동 할 수 없다는 조건이 붙는다. 접근 이 문제는 정해진 출발점에서 도착점까지의 최소 거리를 구하는 전형적인 최단거리 문제보다 어려워 보인다. 아래 두 조건 때문이다. 두 군데에 배달해야함 같은 방향으로 두번 이동할 수 없음 같은 방향으로 두번 이동할 수 없다는 조건은 각 지점의 상태를 들어온 방향을 기준으로 오른쪽(0), 오(1), 위(2), 아래(3)로 구체화해서 다음 지점으로 이동할 때 이 방향을..
문자열 검색이 뭐지? 워드프로세서를 사용할 때 찾기 기능을 사용한적 있을 겁니다. 브라우저에서도 Ctrl+F 단축키를 눌러 검색할 수 있습니다. 아래 이미지는 브라우저에서 "테이프"를 검색했을 때 결과를 캡쳐한 것입니다. 본문에서 89개의 "테이프"를 찾았다고 순식간에 알려주네요. 이렇게 텍스트내(본문)에서 특정 문자열, 패턴("테이프")를 찾는 것을 문자열 검색이라고 부릅니다. 이 문자열 검색은 어떤 방식으로 구현되는걸까요? 가장 단순한 문자열 검색 먼저 가장 단순한 방법의 문자열 검색을 생각해봅시다. 텍스트 "ABCABABCDE"에서 패턴 "ABC"가 어디서 등장하는지 찾아봅시다. 패턴 "ABC"를 한자리씩 옮기면서 같은지 비교합니다. 같아? A B C A B A B C D E A B C ->같아! ..
텍스처 패턴 인식(texture pattern recognition)이 뭐지? 텍스처 패턴을 인식하는 것을 소개해드리려고 합니다. 먼저 제가 소개해드릴 텍스처 패턴 인식(texture pattern recognition)은 다음 과정을 의미합니다. 1. 아래와 4개의 패턴처럼 같은 모양이 주기적으로 반복되는 텍스처 패턴을 미리 정합니다. 2. 컴퓨터가 이 패턴을 학습하도록 합니다. 3. 학습한 패턴의 중 하나가 아래 이미지 처럼 입력으로 주어지면, 학습된 데이터를 바탕으로 중 가장 가까운 패턴을 계산합니다. 4. 입력으로 주어진 패턴과 가장 가까운 패턴을 출력합니다. (앞으로 소개할 과정은 논의를 단순화 하기 위해 흑백 이미지(Grey Scale)에서 진행할 것입니다.) 이 문제가 어려운 이유는 뭘까? ..
a번째 수 부터 b번째 수 까지의 합 구하기 7개의 수 1, 10, 3, 6, 5, 6, 4가 있을 때 a번째 수 부터 b번째 수 까지의 합을 구하는 상황을 생각해봅시다. 2번째 수 부터 4번째 수 까지의 합을 구하라는 질의가 들어오면 10+3+6 = 19 2번째 수 부터 7번째 수 까지의 합을 구하라는 질의가 들어오면 10+3+6+5+6+4 = 34 처럼 a번째 수에서 b번째 수까지를 순회하면서 합을 구하면 됩니다. 이와 같은 방법으로 a번째 수 부터 b번째 수까지의 합을 구하면 숫자의 개수가 N개, 질의의 개수가 M개일 때 M개의 질의 각각에 대해 최대 N번 순회해야하므로 시간복잡도는 O(NM)이 됩니다. 이 보다 더 빠르게 할 수 있을까요? 다음과 같이 배열을 sum을 정의합시다. sum[i] = ..
- Total
- Today
- Yesterday