728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/49189
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
난이도
LV 3
문제 설명
- n개의 노드가 주어지고 1번 노드로 부터 가장 먼 노드의 갯수를 구해서 Return 해주어야 한다.
- 이때 가장 멀리 떨어진 노드란 최단 경로로 이동했을 때 간선의 갯수가 가장 많은 노드를 의미한다.
접근법
- 그래프 이론 알고리즘의 인접 리스트 방식으로 주어진 입력을 변환해준다.
- 거리(간선 개수)를 저장 해줄 리스트를 만들고 BFS를 사용해 최단 경로의 간선 개수를 센후 저장해준다.
- count를 이용해 가장 큰 거리(간선개수)의 개수를 Return 해준다.
코드
from collections import deque
def solution(n, edge):
answer = 0
# 인접 리스트 만들기
dic = {s:[] for s in range(1, n+1)}
for s, e in edge:
dic[s].append(e)
dic[e].append(s)
#거리 저장 List
distance = [-1]*(n+1)
#bfs 구현
q = deque([1])
distance[1] = 0
while q:
n = q.popleft()
for i in dic[n]:
if distance[i] == -1: #해당노드가 방문하지 않은 노드이면 거리 갱신후 큐에 추가
distance[i] = distance[n] + 1
q.append(i)
return distance.count(max(distance))
그래프 이론?
[그래프 이론] 알고리즘 - 그래프 이론 (Graph)
그래프 이론 알고리즘 정점들과 간선들로 이루어진 집합을 "그래프"라고 한다. 그래프의 종류 트리 : 부모, 자식 계층 구조를 가진다. (특징 : 간선 수 = 노드 수 - 1) 이진트리 : 각 노드의 자식 노
h-castle.tistory.com
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 여행 경로 by 파이썬(Python) : DFS (0) | 2023.07.27 |
---|---|
[프로그래머스] 네트워크 by 파이썬 (Python) : DFS(깊이 우선 탐색) (0) | 2023.07.26 |
[프로그래머스] 2022 KAKAO BLIND RECRUITMENT 파괴되지 않은 건물 by 파이썬 (Python) :누적합 (0) | 2023.07.23 |
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT 문자열 압축 by 파이썬(Python) (0) | 2023.07.22 |
[프로그래머스] 연속된 부분 수열의 합 by 파이썬 (python) Lv2 (0) | 2023.07.20 |