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
- 분할정복
- 스프링 에러
- DP
- 그래프 자바
- java 프로그래머스
- 프로그래머스
- 파이썬
- 자바
- 백준
- Java
- java leetcode
- 자바 리트코드
- 코테
- 구현
- 인텔리제이 에러
- 백준 16935
- 리트코드 1557
- leetcode 1721
- 카카오
- 코딩테스트
- 스택
- 프로그래머스 java
- 리트코드
- 자바 5464
- dfs
- daily challenge
- 백준 18222
- BFS
- leetcode
- 리트코드 자바
Archives
- Today
- Total
레벨업 일지
[Java] leetCode 1557. Minimum Number of Vertices to Reach All Nodes 본문
알고리즘/leetcode
[Java] leetCode 1557. Minimum Number of Vertices to Reach All Nodes
24시간이모자란 2023. 5. 18. 15:13문제
https://leetcode.com/problems/minimum-number-of-vertices-to-reach-all-nodes/description/
정점의 집합들을 탐색했을때 모든 그래프를 탐색 가능한 최소 집합을 구하시오
풀이
vertex A , B 가 있다. (vertex는 정점)
다음과 같은 그래프 정보가 주어지면
A -> B
outDegree(진출차수) | InDegree(진입차수) | |
A | 1 | 0 |
B | 0 | 1 |
A, B 정점들의 진출차수, 진입차수 정보를 알수 있다.
진입차수가 0 인 정점들의 집합이 이번 문제의 정답이다.
풀이 알고리즘은 다음과 같다.
- 진입차수 정보를 얻는다.
- 진입차수가 0 인 것들을 정답 리스트에 추가한다.
- 정답 리스트를 리턴한다.
코드
class Solution {
boolean[] hasInDegree;
public List<Integer> findSmallestSetOfVertices(int n, List<List<Integer>> edges) {
hasInDegree = new boolean[n];
for(List<Integer> l : edges){
hasInDegree[l.get(1)] = true;//진입 차수 정보를 얻는다.
}
List<Integer> l = new ArrayList<>();//
for(int i =0 ; i < n; i++){
if(!hasInDegree[i]){ //진입차수가 0 인 것들을 정답 리스트에 추가한다.
l.add(i);
}
}
return l;
}
}
'알고리즘 > leetcode' 카테고리의 다른 글
[Java] leetcode 1721. Swapping Nodes in a Linked List (1) | 2023.05.16 |
---|---|
[Java] leetcode 30. Substring with Concatenation of All Words (0) | 2023.05.06 |
[Java] leetcode 307. Range Sum Query - Mutable (0) | 2023.05.04 |
[Java] leetcode 662. Maximum Width of Binary Tree (0) | 2023.04.20 |
leetcode 946. Validate Stack Sequences (0) | 2023.04.13 |
Comments