2023년 03월 22일 수요일 - PO 꿀잼
오늘 올려볼 문제는 2492번 Minimum Score of a Path Between Two Cities 이라는 문제이다.
사진을 클릭하면 해당 문제로 이동합니다.
오늘도 LeetCode 사이트 오늘의 문제를 가지고 왔다.
왜 아직도 수욜이니
입력
사진에서도 볼 수 있듯이 int 1개와 2차원 int 배열 1개 입력으로 들어온다.
풀이 및 코드
1번 노드부터 n번 노드까지 있는 그래프가 있다.
roads를 통해서 이어져있는 길과 길의 길이를 입력으로 준다.
이 때 1번 노드부터 n번 노드로 가는 길 중에 가장 짧은 노드 사이의 거리의 길이를 구하는 문제이다. (설명하기가 힘들다..)
오늘은 처음부터 정답을 생각해냈다.
Union Find로 1번 노드와 연결된 노드들을 구하고 최소값을 구했다.
이제 코드를 봐보자!
풀이코드
class Solution {
public int minScore(int n, int[][] roads) {
int[] arr = new int[n + 1];
for(int i = 0; i < n + 1; i++) arr[i] = i;
for(var road : roads) {
int a = findUnion(arr, road[0]);
int b = findUnion(arr, road[1]);
if(a < b) arr[b] = a;
else arr[a] = b;
}
int result = Integer.MAX_VALUE;
for(var road : roads) {
if(findUnion(arr, road[0]) == 1) result = Math.min(result, road[2]);
}
return result;
}
private int findUnion(int[] arr, int n) {
if(arr[n] == n) return n;
return findUnion(arr, arr[n]);
}
}
제출 화면
어후 요즘 너무 졸려
내일도 문제를 풀어서 블로그에 글을 쓸 수 있으면 좋겠다.