알고리즘 디버깅 노트: 실수에서 배우는 최적화

경험을 통해 배운 디버깅 사례들을 정리합니다. 비슷한 실수를 반복하지 않기 위한 기록입니다. 위상 정렬: 인덱스 실수 원본 코드: while (front < rear) { int cur = queue[front++]; for (int idx = adj[cur]; idx; idx = nxt[idx]) { int nxtNode = to[idx]; // 정상 indeg[nxtNode]--; if (indeg[nxtNode] == 0) { ...

6월 25일 21:08에 게시됨

NOIP 모의고사 4회 풀이 노트

문제 1: 대회 참가 조합 각 참가자의 대회 참가 여부를 비트마스크로 인코딩하여 [0, 16) 범위의 정수로 표현한다. 이후 각 상태의 비트 개수(popcount)를 기준으로 내림차순 정렬한 뒤, 그리디 전략으로 조합을 구성한다. 핵심 아이디어는 sum[j]가 양수일 때, 현재 상태 j와 겹치지 않는 참가자를 병합하여 새로운 상태를 형성하는 것이다. 초기값을 충분히 큰 값으로 설 ...

5월 25일 10:19에 게시됨