운영체제(OS) 역할
운영체제(Operating System) 역할 운영체제는 일반적으로 자원 관리자(Resource manager)라고 정의됩니다. 이는 컴퓨터에 있는 CPU, 메모리, 디스크 등의 자원을 관리하여, 일반 사용자들이 컴퓨터를 사용할 수 있도록 지원해줍니다. 위 사진은 운영체제의 초기 상태를 보여줍니다. 이때, test.c라는 파일을 만들어서 저장할 때 운영체제가 어떠한 동작을 하는지 확인해보도록 합시다. 우선, 사용자가 해당 파일을 저장하려고 한다면, 사용자의 저장 요청은 운영체제로 전달되고, 운영체제는 비휘발성 메모리인 디스크에 이 소스코드를 저장합니다. 조금 더 자세히 살펴보자면, 운영체제가 디스크의 일부 공간(4KB, 디스크 블록)을 할당받고, 디스크 블록에 파일의 내용을 저장합니다. 또한, 파일의 속..
LCA(Lowest Common Ancestor) 알고리즘
오늘은 LCA(Lowest Common Ancestor) 알고리즘에 대해 다뤄보겠습니다. LCA 알고리즘이란? 제목에서 보시다시피, 최소 공통 조상 알고리즘입니다. 우선, 아래 그림을 통해 이 알고리즘을 이해해보도록 합시다. 깊이(Depth)란? 이와 같은 트리가 있다고 할 때, 1이란 값을 가진 Node는 루트(Root)노드라고 불립니다. 루트(Root)노드는 깊이(Depth)가 0이며, 루트를 기준으로 아래부터 1, 2, 3, .. 이런 방식으로 깊이(Depth)가 증가하게 됩니다. 그럼, 노드 9는 깊이가 3, 노드 8의 깊이도 3, 노드 7의 깊이는 2라는 사실을 알 수 있습니다. 조상(Ancestor)이란? Depth에 대한 설명을 모두 마쳤으니, 이제 조상(Ancestor)에 대한 이야기를 해..
[백준 13334 C++] 철로
오늘은 백준(BOJ) 13334번 철로 문제에 대해 다뤄볼 예정이다. 철로 문제 링크 (백준(BOJ) 13334번 문제): https://www.acmicpc.net/problem/13334 13334번: 철로 입력은 표준입력을 사용한다. 첫 번째 줄에 사람 수를 나타내는 양의 정수 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 각 줄에 정수 쌍 (hi, oi)가 주어진다. 여기서 hi와 oi는 −100,000,000이상, 100,000,0 www.acmicpc.net 문제 설명 백준 13334번 철로 문제는 각 사람 당 집과 사무실의 위치를 입력받은 후, 얼마나 많은 사람이 철도의 길이 L 안에 포함될 수 있는지 출력하는 문제이다. 아래 사진을 예시로 들어보면, L 범위안에 (5, 40)..