/
https://42jerrykim.github.io/ _index.md
인접한 원소만 swap 가능할 때 배열 정렬에 필요한 최소 swap 횟수를 구하는 문제. 병합 정렬을 이용한 역순쌍(inversion count) 계산으로 O(n log n) 시간에 해결합니다. 백준 12844번 XOR 문제는 세그먼트 트리에 Lazy Propagation을 적용하여 구간 XOR 업데이트와 구간 XOR 합 쿼리를 효율적으로 처리하는 문제입니다. O(M log N) 시간 복잡도로 해결하며, XOR 연산의 성질을 이용한 레이지 갱신 로직을 상세히 다룹니다. 정보과학관에서 출발하여 D분 후 다시 돌아오는 경로의 수를 행렬 거듭제곱으로 O(8^3 log D)에 계산합니다. 인접 행렬의 D제곱에서 (0,0) 원소가 정답입니다. 제비 뽑기에서 파란 제비를 K번 뽑을 때까지의 기댓값을 구하는 확률 문제로, 선형 점화식과 페르마의 소정리를 이용한 모듈로 연산으로 해결합니다. 동적계획법으로 상태를 정의하고 거듭제곱을 활용하여 대수 계산을 단순화합니다. 네 변의 길이로 만드는 최대 사각형 넓이 문제를 브라마굽타 공식으로 해결합니다. 원에 내접하는 사각형의 성질, 정당성 증명, 부동소수점 정밀도 처리를 다룬 기하학 풀이입니다. 평면 그래프 색칠 문제를 Smallest-Last Ordering과 Kempe Chain 휴리스틱으로 해결합니다. 4색 정리 기반 그래프 색칠, Degeneracy 활용, 색상 충돌 시 연결 요소 교환을 통한 다항식 시간 알고리즘 구현입니다. 기하학 기반의 스위핑 알고리즘과 세그먼트 트리를 결합해 두 평행선 사이 영역의 최대 이익을 구하는 고급 문제입니다. 모든 점의 기울기를 이벤트로 처리하고 공선점 처리를 통해 효율적으로 문제를 해결합니다. 백준 16983번 Coin Collecting 문제는 2N개의 동전을 Nx2 격자에 배치하는 최소 이동 횟수를 구하는 문제입니다. 그리디 알고리즘을 통해 각 열의 동전 과부족을 계산하고, 수직 및 수평 이동을 최적화하여 문제를 해결하는 C++ 정답 코드와 상세한 풀이를 제공합니다. 캠핑장 격자에 텐트를 배치하는 경우의 수를 구하는 조합론 문제로, 행-쌍(row-pair)과 열-쌍(column-pair), 고립 텐트를 분리하여 동적계획법으로 계산합니다. 모듈러 연산과 팩토리얼을 활용한 효율적인 풀이입니다. 원형 그래프(Circle Graph)의 이분 칠하기 문제를 세그먼트 트리와 BFS로 O(NlogN)에 해결합니다. 컨테이너 입출항 교차 관계를 그래프로 모델링하고 연결 요소마다 2^c 가지 배치를 계산하는 정확한 풀이입니다.