CS 16

[알고리즘] 동적 계획법 DP, Dynamic Programming

동적 계획법(Dynamic Programming) 복잡한 문제를 간단한 여러 개의 하위문제로 나누어 푼 다음, 그것을 결합하여 최종적인 문제 해결을 하는 방법 부분 문제 반복(Overlapping Subproblem)과 최적 부분 구조(Optimal Substructure)를 가지고 있는 알고리즘을 일반적인 방법에 비해 더욱 적은 시간 내에 풀 때 사용 이미 진행된 연산을 기록했다가 사용하는 방식 메모이제이션(Memoization) 하위 문제의 연산의 값을 배열에 저장하여 재사용 하는 방식 한 번 계산된 결과를 저장해 두었다가 활용하는 방식으로 중복 계산을 줄이는 것 접근 방식 하위 문제 정의; 전체 문제를 하위 문제로 단순화메모이제이션 테이블 정의점화식 정의; 재귀적인 구조를 활용 할 수 있는 점화식을..

CS/Algorithm 2021.09.06

[알고리즘] 완전탐색 알고리즘 / 브루트 포스 Brute Force

완전탐색 알고리즘 / 브루트 포스(Brute Force) 더보기 Brute: 짐승같은, 무식한, 짐승같은 + Force: 힘 조합 가능한 모든 문자열을 하나씩 대입해 보는 방식으로 암호를 해독하는 방법 완전탐색 알고리즘 가능한 모든 경우의 수 모두 탐색 장점 모든 경우의 수를 탐색하면서 요구조건에 충족되는 결과만을 가져옴 그렇기 때문에 예외 없이 100%의 확률로 정답만 출력 단점 문제의 복잡도(Complexity)에 매우 민감하다 탐색 방법 선형 구조; 전체적으로 탐색하는 순차 탐색 비선형 구조 너비 우선 탐색(BFS, Breadth First Search) 깊이 우선 탐색(DFS, Depth First Search)

CS/Algorithm 2021.09.06

[알고리즘] 백트래킹 Backtracking

백트래킹(Backtracking) 현재 상태에서 가능한 모든 후보군을 따라 들어가며 탐색하는 알고리즘 해(정답)을 찾는 도중 해가 아니어서 막히면, 되돌아가서 다시 해를 찾아가는 기법 완전 탐색X 최적화 문제와 결정 문제를 푸는 방법 재귀 사용 재귀의 특성상 틀리더라도 틀린 부분을 찾는 것이 힘듦 가지치기(Prunning) 해를 찾아가는 도중 해당 경로가 해가 될 것 같지 않으면 더이상 가지 않고 되돌아 가는 방식 불필요한 부분을 쳐내고 최대한 올바른 쪽으로 감 접근 방식 모든 가능성은 하나의 트리처럼 구성할 수 있으며, 트리의 가지 중 해결책이 존재 트리를 검사하기 위해 깊이 우선 탐색(DFS) 시도 → 탐색 중 오답을 만나면 이전 분기점으로 백 -> 시도해 보지 않은 해결책이 있으면 시도 -> 해결 ..

CS/Algorithm 2021.09.03

[알고리즘] 재귀 Recursion

재귀(Recursion) 어떠한 것을 정의할 때 자기 자신을 참조하는 것 재귀적 정의 또는 순환 정의 라고도 함 재귀 함수(Recursive Function) / 재귀 알고리즘(Recusive Algorithm) 하나의 함수에서 자기 자신을 다시 호출해 수행하는 알고리즘 귀납적 문제 해결 방식(기존의 절차지향적인 문제 해결 방식과는 다름) 모든 재귀 함수는 반복문으로 치환 가능 상황에 따라서 반복문이 코드가 너무 길고 복잡해질 경우 재귀 함수 사용 반복문 대신 재귀 함수로 구현했을 경우 코드가 간결하지만, 메모리/시간 측면에서 손해 자기 자신을 여러 번 호출하는 것은 비효율적! 재귀 호출 시에는 스택 영역에 계속 누적됨 접근방식 함수의 정의 Base Condition 정의(필수) 자기 자신을 호출하지 않..

CS/Algorithm 2021.08.31

[운영체제] Chapter2 운영체제

운영체제(OS, Operating System) 컴퓨터 시스템 자원(Hardware, HW) 관리 응용 프로그램(Application, App)나 사용자에게 서비스 제공 더보기 컴퓨터 시스템의 구성 OS : System Call Interface, Kernel, Resource Management - 사용자가 직접 Kernel에 접근하는 경우 문제가 발생하므로, OS에게 요청하게 되는데, System Call Interface(시스템 라이브러리)를 사용해서 요청 운영체제 역할 User Interface; 편리성 CUI : 문자기반 GUI : 그래픽 기반 EUCI(End-User Comfortable Interface) : 특별한 목적만을 위해 만들어진 시스템을 위한 UI mp3 UI Resource Ma..

CS/OS 2021.08.26

[운영체제] Chapter1 컴퓨터 시스템 개요

컴퓨터 시스템 자원(Hardware, HW) 프로세서(Processor) : CPU, GPU, 응용 전용 처리장치 등 메모리(Memory) : 주기억장치, 보조 기억장치 등 주변장치 : 키보드, 마우스, 모니터, 프린터, 네트워크 모뎀 등 1. 프로세서(Processor) 1) 구성 레지스터(Register) 연산장치 제어장치 2) 동작 연산 수행 컴퓨터의 모든 장치의 동작 제어 레지스터(Register) 용도에 따른 분류 전용 레지스터 범용 레지스터 사용자가 정보 변경 가능 여부에 따른 분류 사용자 가시 레지스터 데이터 레지스터(DR, Data Register) 주소 레지스터(AR, Address Register) 사용자 불가시 레지스터 프로그램 카운터(PC, Program Counter) : 다음에 ..

CS/OS 2021.08.25
728x90
반응형