티스토리 뷰

알고리즘

백준 - 게리맨더링

koyuchang 2021. 6. 16. 16:10

문제 출처: https://www.acmicpc.net/problem/17471

 

17471번: 게리맨더링

선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다.

www.acmicpc.net

 

선거구를 어떻게 조합해야 각 선거구끼리 연결되어있고, 선거구 내에서 개수는 상관없으므로 부분집합을 사용하였다.

전체적인 로직은,

1. 부분집합을 통한 선거구 나누기

2. 나눈 선거구가 유효한지 확인(특정 한 선거구 맛있으면 유효하지 않다.)

3. 유효하다면, 각 선거구 별 점수 구하기( 선거구 별로 재귀를 통한 점수 합산.)

4. 선거구 별 다시 한번 유효 확인(각 선거구는 서로 연결되어있으므로 만약 위에 3번에서 재귀 탐색 이후에 방문 배열에 하나라도 False, 즉 방문하지 않은 곳이 있다면 유효하지 않다.)

5. 각 선거구 별 점수 차이 최소값 갱신

 

 

 

 

'알고리즘' 카테고리의 다른 글

백준 - ZOAC  (0) 2021.06.21
SWEA - 프로세서 연결하기  (0) 2021.06.19
백준 - Z  (0) 2021.06.16
백준 - ⚾  (0) 2021.06.10
백준 - 공주님을 구해라  (0) 2021.06.07
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함