https://programmers.co.kr/learn/courses/30/lessons/49189
코딩테스트 연습 - 가장 먼 노드
6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3
programmers.co.kr
정말 사람의 기억력은 덧없다.
내가 BFS문제를 몇개를 풀었는데
몇달 안풀었다고 또 잊어버렸다.
어쩔수 없지 계속 푸는 수 밖에 !!!!
1. 그래프 정보 수집
2. 덱을 만들어 시작 노드(1) 을 삽입
3. 덱이 빌 때까지 빼면서 방문하지 않은 노드를 방문하여 vis +1
4. 가장 멀리 떨어진 노드 ( 가장 큰수)를 구해 count를 이용해 개수 return
vis[1] = 1을 두고 덱에 1을 삽입해 놓는다.
그리고 1 주변을 돌면서 안가본 것들을 현재 값 +1 을 하여 저장한다.
그리고 다시 덱에 넣는다.
코드 :
from collections import deque
def solution(n, edge):
mp = [[] for _ in range(n+1)]
vis = [0] *(n+1)
for a,b in edge :
mp[a].append(b)
mp[b].append(a)
vis[1] = 1 # 1에서 시작
q = deque([1])
while q :
now = q.popleft()
for i in mp[now] :
if vis[i] == 0 : # 첫방문
vis[i] = vis[now] + 1
q.append(i)
max_v = max(vis)
answer = vis.count(max_v)
return answer
배운 점 :
1. count
list안에 있는 특정 수의 개수를 구하고 싶을 때 count를 쓴다.
[리스트 이름].count( [개수를 알고싶은 숫자 ] )
참고 블로그 :
[프로그래머스] 가장 먼 노드 / 파이썬 / python / BFS
💡 solutions 💬 최단 거리 로직을 위해 BFS 알고리즘으로 구현한다. -> deque 자료구조 사용 💬 visit 배열을 가지고 방문했는지 확인함과 동시에 1부터 해당 노드까지의 거리를 저장한다. 👨💻
whwl.tistory.com
복습 :
✅ 20220619
✅ 20220621
✅ 20220622
✅ 20220623
✅ 20220624
✅ 20220625
✅ 20220626
✅ 20220630
✅ 20220701
✅ 20220702
'알고리즘 > 프로그래머스문제풀이' 카테고리의 다른 글
[Python/프로그래머스]정수 삼각형 _DP (0) | 2022.06.14 |
---|---|
[Python/프로그래머스]N으로 표현 _DP (0) | 2022.06.14 |
[Python/프로그래머스]H-Index_정렬 (1) | 2022.06.11 |
[Python/프로그래머스]가장 큰 수_정렬 (0) | 2022.06.11 |
[Python/프로그래머스]k번째 수_정렬 (0) | 2022.06.11 |