본문 바로가기

Problem Solving

BOJ 10216 - Count Circle Groups

문제 링크


https://www.acmicpc.net/problem/10216


문제 해결


1. 결국 두 원 사이의 관계를 구해야 하는 문제. 그 후에 완전탐색을 통해 해결할 수도 있으나 여기선 Union & Find로 해결함.


2. (두 원의 중심 사이의 거리) <= (두 원의 반지름의 합) 이면 Union & Find로 grouping.


3. group의 개수 출력.


주의할 점


1. Find 함수 구현 시, 경로 압축을 해주면 조금 더 효율적이다.


2. root의 root가 바뀌는 것을 방지하기 위해서 if,else 구문으로 나눈다.


3. sqrt() 연산을 사용하는 것보다, 비교 대상을 제곱해주는 것이 더 나을 때가 있다.


4. 혹여나 root가 갱신이 안되어있을 수도 있기에, 전체적으로 갱신해준다.





※ 정확하고 부드러운 태클은 언제나 환영입니다.



'Problem Solving' 카테고리의 다른 글

BOJ 2870 - 수학숙제  (0) 2016.12.17
BOJ 3055 - 탈출  (0) 2016.12.09
BOJ 11051 - 이항계수 2  (2) 2016.12.06
BOJ 1157 - 단어 공부  (0) 2016.11.29
BOJ 9933 - 민균이의 비밀번호  (0) 2016.11.21