시즌 1 · 알파고편 / PART 1 · PART 1 · 바둑이라는 우주 / Ch 3 · 따냄과 자살수

그룹 — 운명을 공유하는 돌들

자 이제 진짜 핵심. 그룹(group).

📖 그룹 (group)

인접한(상/하/좌/우) 같은 색의 돌들은 하나의 그룹으로 묶인다. 그룹은 운명을 같이 한다 — 활로도, 잡힘도, 살아 있음도 모두 그룹 단위로 계산.

아래 보드를 봐. 두 흑돌 (2,1)과 (2,2)는 가로로 붙어 있지? 그래서 같은 그룹이야. 반면 (4,4)에 있는 흑돌은 떨어져 있으니까 별개의 그룹. 둘은 같은 색이지만 운명이 따로따로야.

그러면 활로는 어떻게 셀까? 그룹의 활로는 그룹에 속한 모든 돌의 인접 빈 자리들의 합집합이야. 중복은 한 번만 셈.

💡 직접 계산해보기 — (2,1)-(2,2) 그룹
  • (2,1)의 인접: 상(1,1), 하(3,1), 좌(2,0), 우(2,2)는 같은 그룹 ❌
  • (2,2)의 인접: 상(1,2), 하(3,2), 좌(2,1)는 같은 그룹 ❌, 우(2,3)
  • 활로 자리 모음 (중복 제거): (1,1), (3,1), (2,0), (1,2), (3,2), (2,3) → 6개

아래 보드의 빨간 점을 세보면 확인됨. (4,4) 흑돌은 별개 그룹이라 따로 활로 2개.

잠깐 — 우리가 지금까지 짠 활로 함수는 단일 돌 기준이었어. 두 흑돌의 활로를 각각 따로 세면 (2,1)이 4, (2,2)가 3, 합쳐서 7. 그런데 실제 그룹 활로는 6. 차이가 나는 이유는 두 돌이 서로를 활로처럼 셌기 때문이야 (서로 인접하니까 옆자리지만 빈자리는 아닌 거지). 그리고 (1,1)-(1,2) 같은 자리는 두 돌이 모두 인접하니 중복.

그래서 코드를 다시 짜야 해. 다음 페이지에서 그룹을 BFS로 찾는 법, 그 그룹 전체의 활로 계산하는 법을 배워.

컴포넌트 로딩 중...