Tags

36 pages

정렬

[Algorithm] C++ 백준 20131번: 트리 만들기

N개의 정점으로 이루어진 트리에서 리프를 큰 번호부터 하나씩 제거하며 인접 정점을 기록해 얻은 수열이 주어졌을 때, 원래 트리를 역으로 복원하는 문제입니다. 차수와 우선순위 큐를 이용해 리프를 관리하고, 마지막 두 정점을 연결하는 방식으로 O(N log N)에 유일한 트리를 구성하거나, 불가능한 경우를 안전하게 검출하는 구현과 정당성을 정리합니다.
[Algorithm] C++ 백준 20131번: 트리 만들기

[Algorithm] C++ 백준 5920번: Cow Photography

BOJ 5920 Cow Photography 문제는 다섯 장의 사진에서 최대 한 번씩만 자리를 옮긴 소들의 줄 서기 결과를 보고, 원래 의도된 순서를 복원하는 순열 재구성 문제입니다. 각 쌍의 소에 대해 다섯 사진에서의 상대적 순서를 다수결로 비교하는 아이디어를 사용해, 안정적인 커스텀 정렬 비교 함수를 설계하고 C++로 O(N log N)에 유일한 답을 구하는 방법을 정리합니다.
[Algorithm] C++ 백준 5920번: Cow Photography

[Algorithm] C++ 백준 11012번: Egg - 2D 직사각형 쿼리 스위핑+BIT

n개의 점과 m개의 직사각형 [l,r]×[b,t]가 주어질 때, 각 직사각형 안의 점 개수를 모두 합한 값을 구한다. x를 기준으로 오프라인 스위핑을 수행하고, y는 좌표 압축 후 펜윅 트리(Fenwick Tree)로 누적 빈도를 관리한다. 쿼리는 (r,+1),(l-1,−1) 이벤트로 분해해 포함-배제를 구현하여 총합을 O((n+m) log n)에 계산한다. 64비트 누적, 경계(b=0) 처리, 중복 좌표 대응을 주의한다.
[Algorithm] C++ 백준 11012번: Egg - 2D 직사각형 쿼리 스위핑+BIT