문제) 백준 - BFS - 게리맨더링
https://www.acmicpc.net/problem/17471
17471번: 게리맨더링
선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다.
www.acmicpc.net
삼성 기출스러운 조합+그래프 탐색 문제였습니다. 조합을 사용할 때, 파이썬 itertools에 내장된 combinations만큼 편한 게 없기 때문에 파이썬의 해결했습니다. N개의 구역 중에 1부터 N//2 구역을 뽑은 후 BFS를 통해 인구 수와 방문한 구역 수를 반환합니다. 마찬가지로, 위에서 뽑은 구역을 제외한 나머지 구역에 대해 인구 수와 구역 수를 계산하여 이전에 계산한 구역 수의 합이 N이면 인구수의 최소를 구한다.
Python 소스 코드)
Full Code)
GitHub - Chocochip101/BOJ_Solution: BOJ Solutions
BOJ Solutions. Contribute to Chocochip101/BOJ_Solution development by creating an account on GitHub.
github.com
반응형
'PS(Problem Solving) > 백준_BOJ' 카테고리의 다른 글
[백준] 13023번 - ABCDE (C++) (0) | 2022.01.05 |
---|---|
[백준] 1956번 - 운동 (C++) 문제 및 풀이 (0) | 2022.01.05 |
[백준] 1110번 - 더하기 사이클 (파이썬) 문제 및 풀이 (0) | 2022.01.01 |
[백준] 2251번 - 물통 (C++) 문제 및 풀이 (0) | 2021.12.31 |
[백준] 2533번 - 사회망 서비스(SNS) (C++) 문제 및 풀이 (0) | 2021.12.30 |
댓글