Menu
CoddyTech

Redundant Connection

네트워크는 트리로 시작했습니다. n개의 노드가 1부터 n까지 번호가 매겨져 있고, 사이클이 없는 n-1개의 무방향 간선으로 연결되어 있었습니다. 그런 다음 직접 연결되어 있지 않은 두 노드 사이에 간선 하나를 더 추가하여, 이제 edges 목록에는 n개의 간선과 정확히 하나의 사이클이 있습니다.

간선 하나를 제거하여 나머지 n-1개의 간선이 다시 트리를 이루도록 하세요. 제거할 수 있는 간선이 여러 개라면, edges에서 가장 마지막에 나타나는 간선을 그곳에 쓰인 그대로 [a, b] 쌍으로 반환하세요.

함수

findRedundantConnection(edges: integer-2d-array) → integer-array
edgesinteger-2d-array
n개의 무방향 간선으로, 각 간선은 1부터 번호가 매겨진 노드 쌍 [a, b]입니다
반환값integer-array
edges에서 마지막에 나타나는 사이클 간선(거기에 적힌 그대로)

제약 조건

  • 3 ≤ n ≤ 5000, 여기서 n = edges.length
  • edges[i] = [a, b]이며 1 ≤ a, b ≤ n이고 a ≠ b
  • 어느 방향으로든 같은 변이 두 번 나타나지 않습니다.
  • 간선은 n개의 모든 노드를 연결하며 정확히 하나의 사이클을 이룹니다.

예제

입력
edges = [[1, 2], [1, 3], [2, 3]]
출력
[2, 3]
설명
세 변은 삼각형 1, 2, 3을 이루므로, 그중 어느 하나를 제거해도 트리가 남습니다. [2, 3]은 목록에서 마지막에 옵니다.
challenge icon

후속 질문

간선에 방향이 있고 원래 그래프가 루트 트리라면, 추가 간선으로 인해 한 노드에 부모가 둘 생길 때 어떤 간선을 제거해야 할까요?

코드 초기화
def findRedundantConnection(edges):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

인자

edges = [[1, 2], [1, 3], [2, 3]]

예상 출력

[2, 3]