Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- 캠스터디
- 크롬 익스텐션
- 포도주시식
- Chrome Extension
- popup
- Message Passing
- 동적계획법
- 백준 #7568번 #파이썬 #동적계획법
- background script
- 공부시간측정어플
- supabase
- nodejs
- TypeScript
- content script
- 파이썬
- 프로그래머스 #정수삼각형 #동적계획법
- 2156
- 갓생
- 백준
- 디스코드 봇
- 자료구조
- discord.js
- react
- X
- 크롬 확장자
- webpack
- C언어로 쉽게 풀어쓴 자료구조
- 백준 7579
Archives
- Today
- Total
히치키치
프로그래머스 - 네트워크 (DFS, BFS) Python 본문
문제
https://programmers.co.kr/learn/courses/30/lessons/43162?language=python3
코딩테스트 연습 - 네트워크
네트워크란 컴퓨터 상호 간에 정보를 교환할 수 있도록 연결된 형태를 의미합니다. 예를 들어, 컴퓨터 A와 컴퓨터 B가 직접적으로 연결되어있고, 컴퓨터 B와 컴퓨터 C가 직접적으로 연결되어 있
programmers.co.kr
풀이
- BFS : 큐로 구현 : 연결 여부 확인 필요한 노드 모음
- Visited : 방문 여부 Check
- node : 현재 연결여부 판정하고 있는 노드 번호
코드
#문제 : https://programmers.co.kr/learn/courses/30/lessons/43162?language=python3
def solution(n, computers):
net_cnt = 0 #네트워크 갯수 확인
visited = [0]*n #방문여부 Check
bfs = [] #큐
while 0 in visited: #아직 방문 X인 노드에 대해 (=연결여부 확인 안 한 노드에 대해)
bfs.append(visited.index(0)) #지금까지 방문 안 한 노드에 싹 다 큐에 넣어서 진행
while bfs: #연결여부 확인할 노드가 없을 때까지
node = bfs.pop(0) #맨 앞에 있는 큐 값 pop
visited[node] = 1 #방문 했으니 check
for i in range(n): #전체 노드 돌면서 연결 여부 check
if visited[i] == 0 and computers[node][i] == 1:
bfs.append(i) #이전에 방문한 적 없고 지금 검사하는 노드랑 연결되어 있음
net_cnt += 1
return net_cnt
'알고리즘 스터디' 카테고리의 다른 글
[백준] 13913번 : 숨바꼭질4 - Python(파이썬) (0) | 2021.05.25 |
---|---|
프로그래머스 - 가장 먼 노드 (DFS, BFS) Python (0) | 2021.05.17 |
[백준] 1806번 : 부분합 - Python(파이썬) (0) | 2021.05.11 |
[백준] 2661번 : 좋은 수열 - Python(파이썬) (0) | 2021.05.11 |
[백준] 11559번 : Puyo Puyo - Python(파이썬) (0) | 2021.05.03 |
Comments