Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 프로그래머스 java
- 파이썬
- 스택
- DP
- 리트코드
- 백준 16935
- java leetcode
- daily challenge
- leetcode
- 리트코드 자바
- 스프링 에러
- 리트코드 1557
- 자바
- dfs
- 인텔리제이 에러
- java 프로그래머스
- 구현
- 백준 18222
- 그래프 자바
- 코테
- 코딩테스트
- 자바 리트코드
- 자바 5464
- Java
- leetcode 1721
- 백준
- 프로그래머스
- 카카오
- 분할정복
- BFS
Archives
- Today
- Total
레벨업 일지
[Java] leetcode 2316. Count Unreachable Pairs of Nodes in an Undirected Graph 본문
알고리즘/leetcode
[Java] leetcode 2316. Count Unreachable Pairs of Nodes in an Undirected Graph
24시간이모자란 2023. 3. 25. 12:54문제
https://leetcode.com/problems/count-unreachable-pairs-of-nodes-in-an-undirected-graph/description/
무방향 그래프가 주어졌을떄, 다른 집합들의 orderedPair 순서쌍 개수를 구하는 문제
풀이
풀이 알고리즘은 다음과 같다.
- 이어져있는 그래프들의 개수를 탐색하고, 리스트에 추가한다.
- 선형 탐색으로 다음을 수행한다.
- 전체 원소의 수 E , i번쨰 그룹의 원소 개수 k
- 각 반복문마다 k * (E - k ) 한 값을 누적합하고 E -= k 를 수행.
- 정답을 리턴한다.
순서 상관 없이 두 개의 원소를 뽑는 조합으로 문제를 풀었다.
알고리즘 2-2 에서 E -= k 를 수행하는 이유는 i번째에 원소를 사용했으면 전체 원소에서 그만큼 값을 뺴 줘야 하기 때문이다.
코드
자바
class Solution {
ArrayList<ArrayList<Integer>> g ;
public long countPairs(int n, int[][] edges) {
g = new ArrayList<>();
for(int i = 0 ;i < n ;i++)
g.add(new ArrayList<>());
for(int x[] : edges){
g.get(x[0]).add(x[1]);
g.get(x[1]).add(x[0]);
}
boolean v[] = new boolean[n];
ArrayList<Integer> nodeSetList = new ArrayList<>();
long elementSize = 0;
for(int i = 0 ;i < n ;i++){
if(!v[i]){
v[i] = true;
int val = dfs(i, v);
elementSize += val;
nodeSetList.add(val);
}
}
int size = nodeSetList.size();
long ret = 0;
for(int i = 0 ;i < size-1; i++){
elementSize -= nodeSetList.get(i);
ret += nodeSetList.get(i) * elementSize;
}
return ret;
}
public int dfs(int start , boolean[]v){
int cnt = 1;
for(int nv : g.get(start)){
if(!v[nv]){
v[nv] = true;
cnt += dfs(nv, v);
}
}
return cnt;
}
}
'알고리즘 > leetcode' 카테고리의 다른 글
[Java] leetcode 72. Edit Distance (2) | 2023.04.11 |
---|---|
[Java] leetcode 15. 3Sum (0) | 2023.03.30 |
[Java] leetcode 1466. Reorder Routes to Make All Paths Lead to the City Zero (0) | 2023.03.24 |
[Java] leetcode 1319. Number of Operations to Make Network Connected (2) | 2023.03.24 |
[Java] leetcode 2492. Minimum Score of a Path Between Two Cities (0) | 2023.03.23 |
Comments