전체 글

꾸준하게
알고리즘

[백준] 13549번 (java 자바)

import java.util.*; class Node{ int end; int time; public Node(int end, int time){ this.end = end; this.time = time; } } public class Main { static final int MAX_N = 100000; static int[] visited; static PriorityQueue q = new PriorityQueue((a, b)->a.time - b.time); public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int K = sc.nextInt(); visited = n..

알고리즘

[백준] 1916번 (java 자바)

import java.util.*; class Node { int end, weight; public Node(int end, int weight){ this.end = end; this.weight = weight; } } public class Main { static final int INF = 987654321; static List[] Graph; static int[] Dist; static int N, M; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); Graph = new ArrayList[N + 1]; Dist = new int[N ..

알고리즘

[백준] 1753번 (java 자바)

내 처음 풀이 [틀림] => 메모리 초과 : 2차원 배열로 인한 듯 하다 import java.util.*; public class Main { static final int INF = 3000000; static int MAX_N = 20001; static int V, E, K; static int[][] Graph; static int[] Dist = new int[MAX_N]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); V = sc.nextInt(); E = sc.nextInt(); K = sc.nextInt(); Graph = new int[V + 1][V + 1]; for(int i = 1; i <..

알고리즘

다익스트라(Dijkstra) 기본 알고리즘

import java.util.*; // 다익스트라 알고리즘 public class Main { static final int INF = 987654321; static final int MAX_N = 10; static int N, E; static int[][] Graph = new int[MAX_N][MAX_N]; static int[] Dist = new int[MAX_N]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); E = sc.nextInt(); for(int i = 0; i < N; i++){ for(int j = 0; j < N; j++){ if (i == j) ..

알고리즘

[백준] 1012번(java 자바)

import java.util.*; public class Main { static final int MAX_N = 51; static int T, M, N, K; static boolean[][] visited; static int[][] matrix; static int[][] D = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; static class Point{ Point(int r, int c){ row = r; col = c; } int row, col; } public static void main(String[] args) { Scanner sc = new Scanner(System.in); T = sc.nextInt(); // 두 번 반복 for(int a = 0; a ..

알고리즘

[백준] 2667번 (java 자바)

import java.util.*; public class Main { static final int MAX_N = 30; static int N; static boolean[][] visited = new boolean[MAX_N][MAX_N]; static int[][] matrix = new int[MAX_N][MAX_N]; static int[][] D = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; static int cnt = 0; static List list = new ArrayList(); static class Point{ Point(int r, int c, int d){ row = r; col = c; dist = d; } int row, col, dist; } p..

알고리즘

<백준> 2606번 자바 알고리즘[BFS]

2022 / 1 월 풀이 import java.util.*; public class Main { static int cnt; public static void main(String[] args) { Scanner in = new Scanner(System.in); int m = in.nextInt(); int n = in.nextInt(); cnt = 0; LinkedList[] adjList = new LinkedList[m + 1]; boolean[] visited = new boolean[m + 1]; for(int i = 1; i

알고리즘

[백준] 2178번 (java 자바)

DFS로 풀다가 답이 안나왔다 -> 모든 경우를 찾기 때문에 최단 경로 찾을 때 DFS는 적합하지 않음 import java.util.*; public class Main { static final int MAX_N = 1000; static int N, M; static int[][] Graph = new int[MAX_N][MAX_N]; static int[][] D = {{-1, 0}, {1, 0}, {0, -1}, {0, 1}}; static class Point { Point(int r, int c, int d){ row = r; col = c; dist = d; } int row, col, dist; } public static void main(String[] args) { Scanner s..

알고리즘

DFS 기본 알고리즘

순서대로 재귀, stack import java.util.*; public class Main { static final int MAX_N = 10; static int N, E; static int[][] Graph = new int[MAX_N][MAX_N]; static boolean[] visited = new boolean[MAX_N]; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); E = sc.nextInt(); for (int i = 0; i < E; i++){ int u = sc.nextInt(); int v = sc.nextInt(); Graph[u][v] = Gra..

알고리즘

BFS 기본 알고리즘

import java.util.*; public class Main { static final int MAX_N = 10; static int N, E; static int[][] Graph = new int[MAX_N][MAX_N]; static void bfs(int node){ boolean[] visited = new boolean[MAX_N]; Queue myqueue = new LinkedList(); visited[node] = true; myqueue.add(node); while (!myqueue.isEmpty()){ int curr = myqueue.remove(); System.out.print(curr + " "); for(int next = 0; next < N; ++next){ ..

changha.
꾸준하게