2024/04 4

[minimum height trees] 리트코드 310 그래프 알고리즘

그래프알고리즘 - minium height trees리트코드 310번 minimum height trees, 그래프 알고리즘 문제트리가 주어질 때 최소자식래밸을 가지는 루트노드를 모드 찾는다.ex1)위와 같은 트리에서, 최소 자식레벨(2)을 가지는 루트노드는 1 ex2)위와 같은 트리에선, 최소 자식래밸을(2)를 가지는 루트노드는 3,4. 나머지 노드가 루트노드가 되면 래밸 3이상을 가지게 된다. 풀이이 문제의 핵심은 leaf노드들 부터 하나씩 없애 주는 것이다.그렇다면 리프노드는 어떻게 알 수 있는가?바로 모든 노드들에 대해서 연결된 노드의 개수를 저장하는 리스트(indegree)를 만들고, 연결된 노드가 1이 leaf노드가 된다.이렇게 하나씩 없애주다가 마지막으로 삭제되는 ..

알고리즘/graph 2024.04.26

[leetcode] 685. Redundant Connection II

문제해석리트코드 685번 문제.rooted tree를 만들기위해 어떤 edge를 제거해야 하는가? (입력값은 항상 rooted tree에서 간선하나가 더 추가된 상태로 들어옴. 만약 제거할 수 있는 edge가 여러개 있다면 입력으로 늦게들어온 edge를 제거함)* rooted tree ? : 루트노드를 제외한 모든 노드가 하나의 부모만을 가지는 트리 생각의 오류처음엔 단순히 유향그래프의 사이클 발견즉시 해당 edge를 정답으로 찾는 알고리즘을 생각했다. 하지만 해당 방법으로는 아래와 같이 사이클이 없는 그래프에서 정답을 찾지 못한다(실제로는 1->3 or 2->3 edge중 나중에 들어온 edge를 찾아야 한다)따라서 이 문제는 문제의 조건을 이용하여 문제를 새롭게 정의해서 알고리즘을 ..

알고리즘/graph 2024.04.23