친구인가?(Union&Find) 첫 case1에서 타임리밋뜨는 이유
315
widebit1278146
1 asked
0
채점 결과 태스트 케이스2~5까지는 정답으로 나옵니다.
4개 모두 200ms안에 끝납니다
반면에 가장 테스트 케이스 크기가 작을 case1에서는 타임리밋이 뜹니다
이유는 무엇이고 해결책은 무엇일까요?
import java.util.*;
public class Main {
static String answer = "NO";
static int N,M;
static int[] ch,dis;
public void BFS(int t1, int t2, ArrayList<ArrayList<Integer>> arr) {
Queue<Integer> Q = new LinkedList<>();
Loop:for(int i = 1;i<=N;i++) {
if(ch[i] == 0) {
Q.offer(i);
while(!Q.isEmpty()) {
int tmp = Q.poll();
ch[tmp] = 1;
dis[tmp] = 1;
if(dis[t1] == 1 && dis[t2]==1) {
answer = "YES";
break Loop;
}
int len = arr.get(tmp).size();
for(int j = 0;j<len;j++) {
int n = arr.get(tmp).get(j);
Q.offer(n);
}
}
Arrays.fill(dis, 0);
}
}
}
public static void main(String[] args){
Scanner in=new Scanner(System.in);
N = in.nextInt();
M = in.nextInt();
ch = new int[N+1];
dis = new int[N+1];
ArrayList<ArrayList<Integer>> arr = new ArrayList<>();
for(int i = 0;i<=N;i++) {
arr.add(new ArrayList<Integer>());
}
for(int i = 0;i<M;i++) {
int a = in.nextInt();
int b= in.nextInt();
arr.get(a).add(b);
}
int t1 = in.nextInt();
int t2 = in.nextInt();
Main T = new Main();
T.BFS(t1, t2, arr);
System.out.print(answer);
}
}
java
코테 준비 같이 해요!
Answer 1
0
안녕하세요^^
테스트케이스 1번입니다. 디버스해보세요.
20 22
18 9
4 15
12 16
9 10
10 7
14 9
13 3
17 5
6 1
1 14
12 4
9 11
7 5
17 4
6 17
12 9
18 10
17 8
11 18
7 19
4 3
3 4
10 15
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
19
1
갑자기 채점 사이트가 바뀌었어요
0
19
1
문제 리스트 페이지
0
22
1
채점 사이트 관련 질문드립니다
0
20
1
봉우리 문제 질문입니다
0
78
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
62
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
70
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
67
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
83
2
6-7 강의에서
0
47
1
6-6. 장난꾸러기 질문 있습니다.
0
43
1
강의 수강후 코딩테스트
0
106
1
answer 변수 사용 여부
0
43
1
2중 for문
1
83
2
2-11. 임시반장정하기 (Runtime Error)
0
62
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
68
1
이런 풀이는 어떨까요
0
42
1
자바 스트림 방식의 효율성 질문 드립니다.
0
55
1
알고리즘 자료 구조들..
0
60
1
StringBuilder vs BufferdWriter
0
47
1
원더랜드(프림)
0
47
1
이런 코드는 어떤가요?
0
59
1
bfs 풀이
0
56
1
병합정렬
0
55
1

