이진 트리 완전 정복: 순회, 판별, 고급 알고리즘

이 문서에서는 이진 트리의 핵심 개념과 다양한 문제 해결 기법을 심층적으로 다룹니다. 노드 구조 정의부터 재귀/비재귀 순회, 그리고 여러 트리 유형 판별 알고리즘과 고급 주제까지 단계별로 살펴봅니다. 1. 이진 트리 노드 구조 이진 트리의 기본 단위는 노드(Node)이며, 각 노드는 데이터와 왼쪽, 오른쪽 자식 노드를 가리키는 포인터로 구성됩니다. ...

7월 7일 02:00에 게시됨

2024년 모바일 개발연구소 2차 면접 문제 풀이

문제 1: P1258 소형차 문제 (Car Problem) 문제 설명 두 사람 A와 B가 동시에 출발지에서 목적지까지 최대한 빨리 도착해야 한다. 출발지에는 운전자 외에 한 명만 태울 수 있는 소형차가 한 대 있다. 두 사람의 도보 속도는 동일하며, 차량 속도보다 느리다. 두 사람이 동시에 도착하기 위해 차량을 어떻게 활용해야 하는지 구하시오. 입력 형식 한 줄에 세 개의 실수: ...

7월 5일 01:51에 게시됨

루고 P2885 유성 폭 shower S 문제 해결

문제 해법 이 문제는 제한 조건이 있는 BFS를 사용해야 합니다. 유성이 실시간으로 발생하기 때문에 이를 고려해야 합니다. 두 가지 접근 방법을 소개합니다: 해법 1 이것은 처음 시도했던 방법입니다. 유성을 실시간으로 처리하며, BFS는 시간 순서대로 탐색하므로 유성을 그때그때 생성할 수 있습니다. 유성이 발생하는 시간을 주의해야 합니다. 만약 t초에 유성이 발생 ...

7월 3일 04:12에 게시됨

2025년 2월 4일~9일 주차 문제 정리

주간 개요 이번 주는 생활 리듬이 불규칙하여 학습 효율이 저하되었고, 이를 개선하기 위해 환경을 변경하였다. 새로운 일정으로 인해 다음 주부터는 더 체계적인 학습과 경기 준비를 할 계획이다. 문제 해결 기록 SMU Winter 2025 Round 6 B. 스트리머의 밤 문제 요약: 여러 프로그램의 시작 및 종료 시간이 주어질 때, 전체 시간 내에 볼 수 있는 최대 프로그램 수를 ...

7월 1일 05:37에 게시됨

2025년 광저우대학교 프로그래밍 경진대회 신입생 대회

A 마법 문 Trial 크기 비교 문제, 난이도 1성 #include <iostream> using namespace std; int main() { int x, y, z, w; cin >> x >> y >> z >> w; if (x < w && y == z) cout << "YES"; else cout << "NO"; return 0; } B 약초 채집사 약초를 수집 ...

6월 27일 06:21에 게시됨

C++ BFS 알고리즘을 활용한 FloodFill 문제 해결

FloodFill 유형 문제 분석 1. 벽과 문 거리 계산 문제 설명: 2D 그리드에서 방 상태를 나타내는 rooms 배열이 주어집니다. 각 셀은 벽(-1), 문(0), 빈 방(2³¹-1) 중 하나입니다. 모든 빈 방에 대해 가장 가까운 문까지의 거리를 계산하세요. 제약 조건: m == rooms.length n == rooms[i].length 1 ≤ m, n ≤ 250 해결 전략: 모든 문의 위치를 큐에 초기 삽입합니다. BFS를 ...

6월 25일 00:44에 게시됨

너비 우선 탐색(BFS)으로 Flood Fill 유형 문제 풀이

너비 우선 탐색(BFS)은 그래프나 그리드에서 최단 경로를 찾거나 연결된 구성 요소를 탐색하는 데 자주 사용되는 강력한 알고리즘입니다. Flood Fill 알고리즘은 특정 시작점에서 인접한 모든 요소들을 탐색하여 변경하는 과정으로, BFS의 대표적인 응용 사례 중 하나입니다. 이 글에서는 BFS를 활용하여 Flood Fill 계열의 문제들을 해결하는 방법을 다룹니다. 1. 이미지 ...

6월 23일 03:44에 게시됨

문자열 변환 문제(무향 그래프 중복 제거)

문자열 변환 문제 문제 설명 이 문제는 문자열 A와 B, 그리고 최대 6개의 문자열 변환 규칙을 주고, A를 B로 변환하는 최소 단계 수를 찾는 문제입니다. 각 변환 규칙은 "A1→B1" 형식으로 주어집니다. 예를 들어, A가 "abcd", B가 "xyz"이고 변환 규칙이 다음과 같다면: abc→xu ud→y y→yz 이 경우, A는 3번의 변환을 통해 B로 변환될 수 ...

6월 21일 20:45에 게시됨

세 컵 콜라 분배 문제의 BFS 해법

문제 개요 세 개의 컵 용량이 각각 S, N, M(S = N + M, 양의 정수)으로 주어집니다. 처음에 S 용량 컵은 가득 차 있고, 나머지는 비어 있습니다. 컵 간 콜라를 서로 붓는 작업을 최소화하여 두 컵에 S/2의 콜라가 담긴 상태를 만드는 것이 목표입니다. 단, S가 홀수이면 해결 불가능합니다. BFS 접근 방식 각 컵의 현재 상태를 (a, b, c)로 표현하여 BFS를 적용합니다. ...

6월 8일 21:07에 게시됨

그래프 순회 알고리즘: 너비 우선 탐색(BFS)과 깊이 우선 탐색(DFS)

너비 우선 탐색 (Breadth-First Search, BFS) 너비 우선 탐색은 시작 정점으로부터 가까운 노드를 우선적으로 탐색하는 알고리즘으로, 이진 트리의 레벨 순회(Level-order traversal) 방식과 유사합니다. 탐색 과정에서 큐(Queue)를 사용하여 정점을 관리하고, 방문 여부를 기록하기 위한 불리언 배열을 사용합니다. 시작 정점을 큐에 넣고 방문 처리한 뒤, 큐가 ...

6월 8일 16:40에 게시됨