오늘 할일
1. LeetCode
2. 창엔 2일차
3. 창엔 일지작성
4. 기업 지원서 or 코테
오늘 한일
1. LeetCode
[[0,1],[1,3],[2,3],[4,0],[4,5]]
어떻게하면 이 관계들을 재귀를 이용해서 int[][]처럼 사용할 수 있을까?
상황을 간단하게 표현하고자 재귀를 recursive로 바꾸고 pop한 값에 대해 모든 connections를 순회하도록 코드를 짜보았다.
class Solution {
public int minReorder(int n, int[][] connections) {
//노드의 수 구하기
int max_node=0;
for(int i=0; i<connections.length; i++){
if(max_node<connections[i][0])
max_node=connections[i][0];
if(max_node<connections[i][1])
max_node=connections[i][1];
}
int result=0;
Queue<Integer> queue=new LinkedList<Integer>();
int[] visited=new int[max_node+1];
queue.add(0);
while(!queue.isEmpty()){
int node=queue.remove();
if(visited[node]==1)
continue;
visited[node]=1;
for(int[] conn : connections){
if(conn[0]==node){
if(visited[conn[1]]==1)
continue;
result++;
queue.add(conn[1]);
} else if(conn[1]==node){
if(visited[conn[0]]==1)
continue;
queue.add(conn[0]);
}
}
}
return result;
}
}
시간 최적화를 진행해보자