알고리즘
-
Algorithm Note
Dynamic Programming(DP) 알고리즘 - 동적프로그래밍, Python으로 푸는 피보나치
Dynamic Programming 큰 문제를 나누어 작은 문제로 푸는 것 하나의 문제는 단 한 번의 풀이만 한다. Dynamic Programming 과 Recursion(재귀)의 차이점 DP와 재귀는 얼핏보면 '같은 문제가 반복적으로 일어나는 점' 에서 비슷하다고 생각할 수 있다. 하지만, 큰 차이점은 일반적인 재귀를 단순히 사용하면 동일한 작은 문제들이 여러 번 반복 되어 비효율적인 계산될 수 있다는 것이다. 가장 대표적인 예시는 피보나치 함수이다. DP 조건 두 가지 조건을 만족해야 한다. 1. 같은 문제가 반복적으로 발생 2. 최적 부분 구조 동일한 작은 문제들이 반복적으로 일어날 때, 같은 문제는 항상 정답도 같다. 즉, 중복 사용이 가능하다. DP 문제 풀이 방법 모든 작은 문제는 한 번..
-
Algorithm Note
알고리즘 - Greedy (탐욕 알고리즘, 욕심쟁이 알고리즘), 최적해 찾기
Greedy Alogrithm Greedy는 사전적인 의미로 '탐욕스러운', '욕심많은' 이라는 뜻을 가지고 있다. 탐욕 알고리즘 또는 욕심쟁이 알고리즘 라고도 불린다. 미래를 생각하지 않고 선택의 순간마다 당장 눈앞에 보이는 최적의 선택을 하는 기법 각 단계에서 최선의 선택을 한 것이 전체적으로도 최선이길 바라는 알고리즘 그리디 알고리즘 해결 방법 선택 : 현재 상태에서 최적의 해답 선택 적절성 검사 : 선택된 답이 문제의 조건을 만족하는 지 확인 해답 검사 : 원래의 문제가 해결되었는지 검사하고, 해결되지 않았다면 선택 절차로 돌아가 위의 과정을 반복한다. 그리디 알고리즘 조건 그리디 알고리즘을 적용하기 위해서는 2가지 조건을 성립해야 한다. 1. 탐욕적 선택 속성 (Greedy Choice Prop..
-
Algorithm Note
알고리즘 - Stack, Queue (선형 큐, 원형 큐, 알고리즘 코드)
스택 '먼저 들어간 것이 나중에 나오는 자료구조' Last In First Out (LIFO) 구조이다. 스택은 배열과 연결 리스트로 나타낼 수 있다. 스택의 구성 - 상단 (top) : 스택에서 제일 나중에 입력된 데이터의 위치 - 하단 (bottom) : 스택에서 제일 먼저 입력된 데이터의 위치 - 요소 (element) : 스택에 저장되는 데이터 그 자체 - 공백 (empty stack) : 아무런 데이터도 갖고 있지 않은 스택 스택의 연산 push() : 스택에 데이터를 추가한다. pop() : 스택에서 데이터를 삭제한다. is_empty(s) : 스택이 공백상태인지 검사한다. is_full(s) : 스택이 포화상태인지 검사한다. create() : 스택을 생성한다. peek(s) : 요소를 스택..
조회수가 많은 글
-
명품 운영체제
[명품 운영체제] - Chapter02 연습문제 + 복합문제 풀이
생능출판 - 황기태 - 명품 운영체제 명품 운영체제 연습문제 Chapter 02 1. 컴퓨터 시스템에서 주소를 발생시킬 수 있는 하드웨어를 있는 대로 골라라 CPU 메모리 캐시 메모리 디스크 📝 CPU는 컴퓨터에서 기억, 해석, 연산, 제어라는 4대 주용 기능을 관할하는 장치이다. 컴퓨터의 가장 핵심 장치이며, 전원이 공급될 때 작동을 시작한다. 메모리에 적재된 프로그램을 실행하고 컴퓨터 시스템에서 주소를 발생시키는 하드웨어이다. 2. CPU의 주소 선이 총 24개 있다면 이 CPU가 액세스할 수 있는 메모리의 최대 크기는? 1MB 16MB 1GB 2GB 📝 CPU의 주소 선이 24개면 2^24개의 주소를 표현할 수 있다. 주소 선의 개수는 CPU가 직접 액세스할 수 있는 메모리의 크기를 결정한다. 각 ..
-
iOS
[iOS - Swift] Auto Layout Constraint의 Priority에 대해서
Auto Layout은 사용자 인터페이스 요소들의 크기와 위치를 조절하는데 사용되는 메커니즘이다. Apple 제품들만 봐도, 아이폰도 기종 별로 다양한 화면의 크기가 있다. 아이패드도 마찬가지이다. 이런 경우에 Auto Layout을 통해 다양한 디바이스 및 화면 크기에서 일관된 레이아웃을 유지할 수 있다. 스위프트에서 Auto Layout을 다룰 때 Constraint의 우선순위(Priority)는 해당 제약조건이 다른 제약조건과 어떤 순서로 적용되어야 하는지를 지정하는 역할을 한다. 우선순위는 제약조건들 사이의 충돌을 해결하고 원하는 레이아웃을 구성하는 데 도움을 준다. 예를 들어, 여러 제약조건이 서로 충돌하는 경우에 우선순위를 사용하여 어떤 제약조건을 더 중요하게 여길 지 결정할 수 있다. 더 낮..
-
🤖 Computer Vision
컴퓨터 비전 영상처리 - 컬러 Color (RGB, CIE, CMY, YCbCr, HSI, HSV 모델), 실습 코드 Python, openCV
Color 색상 : 색의 명칭, 색의 특성 명도 : 밝은 정도를 나타냄 채도 : 색이 선명하거나 탁한 정도를 나타냄 RGB 삼중 자극 이론 원추세포는 파장 630nm, 530nm, 450nm에 가장 민감하게 반응한다. 빛의 삼원색이며, 컬러 모니터(디스플레이)에 적합하다. RGB의 보색은 CMY이다. 직관적이지 않는다는 단점이 있다. 위의 RGB 영상에서의 변화처럼 빨간양말은 R영상에서 밝은 명암을 가지지만, G와 B영상에서는 어둡게 나타난다. 초록색 잔디는 G영상에서 밝은 명암을 가질 것이다. 흑백영상 grayscale을 RGB 영상으로 바꾸기 실습 코드 import cv2 # 흑백 영상 읽기 gray_image = cv2.imread('gray_image.jpg', cv2.IMREAD_GRAYSCAL..
-
🤖 Computer Vision
영상처리 - 이진화와 오츄 알고리즘 (Otsu Algorithm)
이진화 명암 영상을 흑과 백으로만 이루어진 이진 영상으로 반환한다. T보다 크거나 같으면 1(백), 작으면 0(흑)으로 해서 흑백영상을 만든다. (이진화를 시킨다) 임계값 방법 두 봉우리 사이의 계곡을 임계값 T로 설정한다. 자연 영상에서는 계곡 지점의 결정이 어렵다. 위의 (b)그림은 임계값을 50으로 설정하여 구한 이진 영상이다. 근데 임계값 T는 어떻게 구해야 될까? 이론적으로 봤을 때 이진화에 따른 분류 에러를 최소화시켜주는 임계값을 optimal threshold라고 부른다. T가 optimal threshold 인지 아닌지를 알려면 어떤 픽셀이 물체이고, 어떤 픽셀이 배경인지를 알고 있어야 하는데, 이걸 미리 알고 있었다면 이미 최적의 이진화가 끝난 상태이므로 T를 구할 필요가 없다. 실제 입..
-
명품 운영체제
[명품 운영체제] - Chapter01 연습문제
생능출판 - 황기태 - 명품 운영체제 명품 운영체제 연습문제 Chapter 01 1. 운영체제의 기능과 거리가 먼 것은? 프로세스 스케줄링 파일 입출력 사용자나 프로세스가 CPU를 사용한 시간에 대한 통계 컴파일 2. 운영체제의 특징과 동떨어진 내용은? 운영체제의 기능이 자원을 관리하는 것이지만, 운영체제가 컴퓨터의 모든 자원을 관리하지는 않는다. 운영체제의 역할에는 사용자가 컴퓨터 하드웨어에 대한 지식이 없어도 사용할 수 있도록 해주는 것도 포함된다. 운영체제는 메모리에 상주하여 사용자 프로그램을 실행시키고 종료할 때까지 관리한다. 운영체제는 외부로부터의 악의적 침입을 막는다. 3. 고정 프로그래밍 방식을 설명하는 것으로 틀린 것은? 고정 프로그래밍 방식이란 수백에서 수천 개의 전선을 연결하여 프로그램..