병합 정렬: 작은 정렬 결과를 두 포인터로 합치기
반으로 나눈 배열이 어떻게 다시 정렬된 전체가 되는지 추적하고, 하나의 보조 배열을 재사용해 병합 비용을 지킵니다.
컴퓨터과학의 기초와 자료구조를 익히고, 알고리즘 문제를 직접 풀며 풀이 과정을 확인합니다.
총 131개의 글
반으로 나눈 배열이 어떻게 다시 정렬된 전체가 되는지 추적하고, 하나의 보조 배열을 재사용해 병합 비용을 지킵니다.
현재 값을 잠시 보관하고 큰 값만 오른쪽으로 미는 삽입 정렬을 추적하며, 거의 정렬된 입력에 유리한 이유를 알아봅니다.
최솟값 후보의 인덱스만 갱신한 뒤 한 번 교환하는 선택 정렬을 추적하고, 비교 수와 교환 수를 구분합니다.
서로 붙은 두 값을 바꾸는 한 번의 패스가 무엇을 확정하는지, [4, 2, 3, 1]을 따라가며 설명합니다.
원판 두 개의 세 이동에서 출발해, 출발·도착·보조 기둥의 역할이 바뀌는 이유와 최소 이동 수를 설명합니다.
[2, 4, 6]의 합을 앞부분의 합과 마지막 값으로 나누며, 기다리는 호출과 완성되는 답을 구분합니다.
2의 세제곱을 작은 문제로 나누며 재귀가 멈추는 이유, 입력 검사와 호출 스택의 한계를 함께 살펴봅니다.
KKHSSSSSSSE를 K2HS7E로 바꾸며 연속한 문자 묶음을 배웁니다. 직접 함수를 작성한 뒤 JavaScript·Python·Java·C++·C#의 전체 코드와 예제 추적을 비교해 보세요.
합·개수·최솟값과 연속 상태를 한 번의 순회로 관리합니다. 홀수 판별, 정수 나눗셈, 초기값, 빈 결과를 언어중립 패턴과 JavaScript 예제로 익힙니다.
비음수 가중치 그래프에서 거리 완화·최소 힙·오래된 후보 검사를 연결합니다. 도달 불가, 0 가중치, 평행 간선과 복잡도를 확인합니다.
무엇을 도와드릴까요?
이 글과 함께 공부하기
읽다가 막힌 부분을 물어보세요. 이 글을 바탕으로 설명하고, 이어서 읽을 본문을 연결합니다.