시간&메모리 제한
문제
입력&출력
문제풀이
package com.back;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;
public class Back_1325 {
static int N,M;
static ArrayList<Integer>[] list;
static int[] arr;
static boolean visited[];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
N = Integer.parseInt(st.nextToken());
M = Integer.parseInt(st.nextToken());
list = new ArrayList[N+1];
arr = new int[N+1];
for (int i = 0; i <= N; i++) {
list[i]= new ArrayList<Integer>();
}
for (int i = 0; i < M; i++) {
st = new StringTokenizer(br.readLine());
int a = Integer.parseInt(st.nextToken());
int b = Integer.parseInt(st.nextToken());
list[a].add(b);
}
for (int i = 1; i <= N; i++) {
visited=new boolean[N+1];
dfs(i);
}
int max =0;
for (int i = 1; i <= N; i++) {
max = Math.max(max, arr[i]);
}
for (int i = 1; i <= N; i++) {
if(arr[i]==max) {
sb.append(i+" ");
}
}
System.out.println(sb);
}
private static void dfs(int i) {
visited[i]=true;
for (int tmp : list[i] ) {
if(!visited[tmp]) {
arr[tmp]++;
dfs(tmp);
}
}
}
}
※ 내 생각
이 문제는 시간 초과!!!!!!
어떻게 해결을 해야하는지..... 아시는 분?
다른 블로그를 참고해도 성공하셨다는 분들 코드도 다 시간초가였습니다.
일단 답은 맞게 나와서 코드를 올려봣습니다
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_1912 연속합(자바) / DP (0) | 2021.08.30 |
---|---|
백준_9095 1, 2, 3 더하기(자바) / DP (0) | 2021.08.29 |
백준_11724 연결 요소의 개수(자바) / DFS (0) | 2021.08.27 |
백준_18111 마인크래프트 (자바) / 구현 (0) | 2021.08.26 |
백준_1475 방 번호(자바) / 구현 (0) | 2021.08.24 |