알고리즘

알고리즘

다익스트라(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){ ..

알고리즘

[백준] 16236번 (java 자바)

import java.util.*; public class Main { static final int INF = 987654321; static int N; static int Map[][] = new int[20][20]; static int Dr[] = {-1, 1, 0, 0}; static int Dc[] = {0, 0, -1, 1}; static class Point { int r, c, d; Point (int r, int c, int d){ this.r = r; this.c = c; this.d = d; } } static int solve(int r, int c) { int ret = 0; // 이동하는 시간 int size = 2, cnt = 2;// 상어 크기, 크기 0 되면 사이즈 업 ..

알고리즘

[백준] 14500번 (java 자바)

import java.util.*; public class Main { static int N, M, ans; static int[][] map; static int[] dy = {-1, 1, 0, 0}; static int[] dx = {0, 0, -1, 1}; public static void main(String[] args) { Scanner sc = new Scanner(System.in); N = sc.nextInt(); M = sc.nextInt(); map = new int[N][M]; for (int i = 0; i < N; i++){ for (int j = 0; j < M; j++){ map[i][j] = sc.nextInt(); } } boolean[][] visit = new boo..

알고리즘

[백준] 9019번 (python 파이썬)

from collections import deque def oper_D(n): res = n * 2 if res > 9999: res %= 10000 return res def oper_S(n): res = n if res == 0 : return 9999 res -= 1 return res def oper_L(n): front = n % 1000 back = n // 1000 res = front * 10 + back return res def oper_R(n): #1234 -> 4123 # 1000 -> 100 front = n % 10 back = n // 10 res = front * 1000 + back return res def go(s, t): queue = deque() visited =..

changha.
'알고리즘' 카테고리의 글 목록 (2 Page)