[프로그래머스/Python] 가장 먼 노드

2025. 1. 6. 17:50·CODING_TEST
목차
  1. ※ 문제
  2. ※ 문제 설명
  3. ※ 나의 풀이

※ 문제

https://school.programmers.co.kr/learn/courses/30/lessons/49189

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

※ 문제 설명

n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다.

노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요.


제한사항

  • 노드의 개수 n은 2 이상 20,000 이하입니다.
  • 간선은 양방향이며 총 1개 이상 50,000개 이하의 간선이 있습니다.
  • vertex 배열 각 행 [a, b]는 a번 노드와 b번 노드 사이에 간선이 있다는 의미입니다.

입출력 예

6 vertex return
6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3

입출력 예 설명

예제의 그래프를 표현하면 아래 그림과 같고, 1번 노드에서 가장 멀리 떨어진 노드는 4,5,6번 노드입니다.


※ 나의 풀이

  • BFS로 풀이
  • from collections import deque를 활용
  • 무방향 그래프
  • [0, 1, 1->2, 1->3, 1->2->4 or 1->3->4, 1->2->5, 1->3->6] route리스트에 BFS 탐색 결과 리스트 생성
  • 가장 먼 노드의 개수 확인
from collections import deque

def solution(n, edge):
    answer = 0
    route = [0] * (n + 1)
    graph = [[] for i in range(n + 1)]
    q = deque()
    
    #무방향 그래프
    for e in edge:
        graph[e[0]].append(e[1])
        graph[e[1]].append(e[0])
    
    # 1번 노드에서 가장 멀리 떨어진 노드의 갯수 확인 문제
    q.append(1)
    route[1] = 1
    
    while q:
        now = q.popleft()
        for g in graph[now]:
            if route[g] == 0:
                q.append(g)
                route[g] = route[now] + 1
                
    # print(route) # [0, 1, 2, 2, 3, 3, 3]
    
    # 가장 먼 노드의 개수 확인
    max_edge = max(route)
    
    for i in route:
        if i == max_edge:
            answer += 1
            
    return answer

'CODING_TEST' 카테고리의 다른 글

[백준/Python] 12865. 평범한 배낭  (0) 2025.01.07
[백준/Python] 5567. 결혼식  (0) 2025.01.06
[백준/Python] 1003. 피보나치 함수  (1) 2024.12.31
[백준/Python] 21318. 피아노 체조  (0) 2024.12.30
[백준/Python] 2805. 나무 자르기  (0) 2024.12.30
  1. ※ 문제
  2. ※ 문제 설명
  3. ※ 나의 풀이
'CODING_TEST' 카테고리의 다른 글
  • [백준/Python] 12865. 평범한 배낭
  • [백준/Python] 5567. 결혼식
  • [백준/Python] 1003. 피보나치 함수
  • [백준/Python] 21318. 피아노 체조
YAHO_STUDY
YAHO_STUDY
DATA&AI_study.zip
  • YAHO_STUDY
    YAHO_CODE
    YAHO_STUDY
  • 전체
    오늘
    어제
    • 분류 전체보기 (57)
      • Paper Review (0)
      • SQL (16)
      • CODING_TEST (21)
      • Time Series (0)
      • DL (20)
        • NLP (5)
        • LLM&RAG (15)
        • Recommender System (0)
      • 최적화 (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Programmers
    PEFT
    qlora
    SQL
    runpod
    Gemma
    quantization
    fine-tuning
    pagedattention
    MySQL
    RNN
    hash
    Lora
    prompt-tuning
    DP
    한 권으로 끝내는 실전 llm 파인튜닝
    boj
    graph
    coding_test
    양자화
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
YAHO_STUDY
[프로그래머스/Python] 가장 먼 노드

개인정보

  • 티스토리 홈
  • 포럼
  • 로그인
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.