운영체제 OT
·
CS/운영체제
1. 운영체제를 공부해야 하는 이유 하드웨어 관리의 주체: 모든 프로그램은 하드웨어 위에서 실행되며, 운영체제는 이 자원을 배분하는 핵심 역할을 한다. 시스템 레벨의 최적화: OS의 동작 원리를 이해해야 내 코드가 메모리와 CPU를 어떻게 사용하는지 파악하고 최적화할 수 있다. 문제 해결 범위의 확장: 단순한 코드 로직의 오류를 넘어, 디스크 I/O 병목이나 메모리 스와핑 등시스템 레벨에서 발생하는 원인 불명의 성능 저하를 진단하고 해결할 수 있는 능력이 생긴다. 게임 개발에서의 필수성: 실시간 성능이 최우선인 게임 개발에서는 CPU 스케줄링과 메모리 관리 이해가 필수적이다.2. 학습 로드맵학습할 교재인 [혼자 공부하는 컴퓨터 구조+운영체제]에서 운영체제편의 흐름을 따라 전공 지식을 7..
03. DFS(Depth-First Search)
·
CS/알고리즘
1. 특징 및 복잡도정의: 다음 분기(Branch)로 넘어가기 전, 현재 분기를 끝까지 탐색하는 방식.시간 복잡도: O(V+E) (인접 리스트 기준)공간 복잡도: O(H) (H는 그래프의 최대 깊이)2. 장점과 단점✅ 장점BFS 대비 저장 공간 수요가 적음 (현재 경로의 노드만 저장).목표 노드가 깊은 곳에 있을 때 효율적임.❌ 단점최단 경로를 보장하지 않음.해가 없는 경로에 깊게 빠져 시간을 낭비할 수 있음.3. 구현 방식 (C++)재귀는 직관적이고 스택은 안정적이다.// 재귀 버전void DFS(int cur) { visited[cur] = true; for(int nxt : adj[cur]) { if(visited[nxt]) continue; DFS(nxt); ..
02. BFS(Breadth-First Search)
·
CS/알고리즘
1. 특징 및 활용너비 우선 탐색: 시작 정점에서 가까운 정점부터 차례로 탐색하는 방식.최단 경로 탐색: 가중치가 없는 그래프에서 최단 경로임을 보장하는 데 유용하다.실전 사례: 'OfficeWorkerRunning' 포트폴리오에서 특정 구역의 폐쇄 여부를 판단할 때 활용.2. 복잡도 및 장단점항목내용시간 복잡도인접 리스트: O(V+E) / 인접 행렬: O(V^2)공간 복잡도O(V) (큐에 노드 보관)장점가중치 없는 그래프에서 최단 경로 보장단점DFS 대비 상대적으로 많은 메모리 사용3. 구현 코드 (C++)큐(Queue)를 활용하여 구현하며, 큐에 넣는 시점에 방문 처리를 수행한다.queue q;q.push(start);visited[start] = true;while (!q.empty()) { ..
01. 수학
·
CS/알고리즘
1. 소수 판별 (Primality Test)1.1 단일 수 판별원리: 합성수 n의 약수는 반드시 루트 n 이하에 존재한다.복잡도: O(sqrt(N))bool IsPrime(int n) { if (n 1.2 에라토스테네스의 체 (범위 내 판별)원리: 2부터 시작해 소수의 배수들을 소거하며 소수를 남기는 방식.최적화: 내부 루프를 i*i에서 시작하여 중복 계산을 방지한다.vector sieve(int n) { vector state(n + 1, true); state[0] = state[1] = false; for (int i = 2; i * i 2. 유클리드 호제법 (GCD & LCM)GCD (최대공약수): a % b 연산을 반복하여 나머지가 0이 될 때의 나누는 수.LCM (최소공..