프로세스 (Process)
·
Coding Test/Programmers
난이도: level2링크: 프로세스풀이 날짜: 2025.10.14 1. 문제 이해운영체제의 프로세스들은 각각 우선순위(priority) 를 가지고 있으며, CPU는 가장 높은 우선순위의 프로세스부터 실행한다.만약 대기열의 맨 앞 프로세스보다 더 높은 우선순위를 가진 프로세스가 뒤에 있다면, 그 프로세스는 맨 뒤로 이동한다.이때, 내가 요청한 특정 위치(location)의 프로세스가 몇 번째로 실행되는지 구하는 문제이다. 2. 접근 아이디어이 문제는 “우선순위 기반 프로세스 스케줄링”을 큐(Queue) 로 시뮬레이션하는 문제다. 아이디어를 정리하면 아래와 같다. 2. 각 프로세스를 index와 우선순위(priority) 로 묶어 관리한다.let queue = priorities.map((val, idx) ..
다리를 지나는 트럭 (Bridge Truck)
·
Coding Test/Programmers
난이도: level 2링크: Programmers 42583 - 다리를 지나는 트럭풀이 날짜: 2025.10.14 - 중간에 집중이 흐트러졌으나, 어쨌든 끝까지 감 1. 문제 이해 트럭 여러 대가 무게 제한이 있는 다리를 일정 시간 동안 건너는 시뮬레이션 문제다.모든 트럭이 다리를 건너는 데 걸리는 총 시간을 구해야 한다. 조건은 다음과 같다.다리는 한 번에 여러 대의 트럭이 올라갈 수 있다.다리 위 트럭의 총 무게가 weight 이하여야 한다.각 트럭은 1초에 1칸씩 전진한다. (설명에는 없으나 입출력 예를 참고)다리 길이는 bridge_length로 주어지고, 트럭이 다리를 완전히 건너는 데에는 bridge_length초가 걸린다. 2. 접근 아이디어 및 자료구조이 문제는 단순히 트럭을 한 칸씩 움직..
322.Coin Change
·
Coding Test/LeetCode
난이도: 중간(Medium)Link: LeetCode 322 - Coin Change풀이 날짜: 2025/10/13(못품)1. 문제 이해여러 가지 종류의 동전(coins)과 목표 금액(amount)이 주어졌을 때,가장 적은 수의 동전으로 목표 금액을 만들 수 있는 최소 개수를 구하는 문제다.예를 들어, 위 예시에서 가능한 조합은 다음과 같다.11 = 5 + 5 + 1 (3개)11 = 2 + 2 + 2 + 2 + 2 + 1 (6개)→ 따라서, 최소 개수는 3개가 된다. 그리고, 만약 주어진 동전들로는 금액을 만들 수 없다면, -1을 반환한다. 2. 접근 아이디어 및 자료구조이 문제는 전형적인 Bottom-up DP (Dynamic Programming) 구조를 가진다.핵심은 “금액 i를 만들기 위한 최소 ..
198. House Robber
·
Coding Test/LeetCode
난이도: 중간(Medium)Link: LeetCode 198풀이 날짜: 2025/10/13 1. 문제 이해여러 집이 일렬로 있을 때, 도둑이 인접한 두 집을 동시에 털 수 없다는 규칙 아래에서, 훔칠 수 있는 금액의 최댓값을 구하는 문제다.혼동하지 말아야 할 것은, 연속된 집은 털 수 없지만, 중간에 몇 집을 건너뛰어도 된다는 것이다. 2. 접근 아이디어 및 자료구조이 문제는 전형적인 1D DP 구조를 가지는데, 인접한 집을 털 수 없으므로i번째 집을 털었을 때의 최댓값 = i-2번째까지 턴 최댓값 + 현재 집 금액 이다.i번째 집을 털지 않을 경우 = i-1번째까지 턴 최댓값이 두가지 값을 비교하여 더 큰 값을 누적하는 방식으로 진행한다.이를 점화식으로 표현하면 아래와 같지만, dp[i] = max(d..
70. Climbing Stairs
·
Coding Test/LeetCode
난이도: 쉬움 (Easy)링크: LeetCode 70풀이 날짜: 2025.10.131. 문제 이해한 번에 1계단 또는 2계단을 오를 수 있을 때, n개의 계단을 오르는 서로 다른 방법의 총 수를 구하는 문제이다. 예를 들어,n = 2 → (1+1, 2) → 총 2가지n = 3 → (1+1+1, 1+2, 2+1) → 총 3가지즉, n번째 계단에 도달하는 방법은(n-1)번째에서 한 칸, 또는 (n-2)번째에서 두 칸 올라오는 경우의 합이다.한번더 풀어서 설명하면, n-1 번째까지 오르는 경우의 수 + n-2 번째까지 오는 경우의 수 를 합하면 n번째에 오르는 경우의 수인 것이다.점화식은 dp[i] = dp[i-1] + dp[i-2] 이다. 2. 접근 아이디어 및 자료구조이 문제는 1차원 DP(1Dimensi..
103. Binary Tree Zigzag Level Order Traversal
·
Coding Test/LeetCode
난이도: 중간 (Medium)링크: LeetCode 103풀이 날짜: 2025.10.10(다시품)1. 문제 이해 이진 트리의 각 레벨(level)을 좌 → 우, 우 → 좌 순서로 번갈아가며 순회한 결과를 2차원 배열로 반환하는 문제.2. 접근 아이디어 및 자료구조이 문제는 BFS (너비 우선 탐색) 으로 해결할 수 있는데,각 레벨을 queue에 넣고 한 레벨씩 탐색하며,방향을 나타내는 direction 변수를 사용해 순서를 제어하면 된다.direction = 1 → 왼쪽 → 오른쪽direction = -1 → 오른쪽 → 왼쪽한 레벨이 끝날 때마다 direction *= -1로 방향을 반전시키는 것이 포인트.3. 잘못된 접근 (초기 시도)var zigzagLevelOrder = function(root) ..