프로그래머스 : 전력망을 둘로 나누기
2021. 11. 3. 15:07ㆍ문제풀기/프로그래머스
https://programmers.co.kr/learn/courses/30/lessons/86971
전선을 하나씩 끊어보고, 한 쪽만 BFS로 탐색하며 한 쪽 전력망에 속한 송전탑의 개수를 세어보고 남은 송전탑들과 얼마나 차이나는지 비교하면 된다.
from collections import deque
def bfs(start,visitied,graph):
queue = deque([start])
result = 1
visitied[start] = True
while queue:
now = queue.popleft()
for i in graph[now]:
if visitied[i] == False:
result += 1
queue.append(i)
visitied[i] = True
return result
def solution(n, wires):
answer = n
graph = [[] for _ in range(n+1)]
for v1,v2 in wires:
graph[v1].append(v2)
graph[v2].append(v1)
for start,not_visit in wires:
visitied = [False]*(n+1)
visitied[not_visit] = True
result = bfs(start,visitied,graph)
if abs(result - (n-result)) < answer:
answer = abs(result - (n-result))
return answer
'문제풀기 > 프로그래머스' 카테고리의 다른 글
프로그래머스 : 최솟값 만들기 (0) | 2021.11.16 |
---|---|
프로그래머스 : 주식가격 (0) | 2021.11.16 |
프로그래머스 : 올바른 괄호 (0) | 2021.10.30 |
프로그래머스 : 구명보트 (0) | 2021.10.29 |
프로그래머스 : 2018 KAKAO BLIND RECRUITMENT [1차] 프렌즈4블록 (0) | 2021.10.29 |