전체 글 (68) 썸네일형 리스트형 BOJ 2239번 스도쿠 ( 백트래킹 ) JAVA BOJ 2239번 스도쿠 ( 백트래킹 ) JAVA 풀이 N-Queen 문제와 비슷한 백트래킹 문제이다. 0이 있는 부분을 zero에 추가해준다음. DFS를 이용하여 문제를 풀었다. 링크 https://www.acmicpc.net/problem/2239 소스 코드 package boj; import java.util.ArrayList; import java.util.Scanner; public class Boj2239 { static int[][] map; static ArrayList zero = new ArrayList(); public static boolean isFinished; public static void main(String[] args) { Scanner sc = new Scanner(.. BOJ 1238번 파티 ( 다익스트라 ) JAVA BOJ 1238번 파티 ( 다익스트라 ) JAVA 풀이 다익스트라 알고리즘을 이용하여 해결합니다. 이 때, 아이디어를 잘 떠올리는 게 중요한데 반대 방향으로 가는 경우에는 map에 입력값을 반대로 넣어주면 된다는 것입니다. 링크 https://www.acmicpc.net/problem/1238 소스 코드 package boj; import java.util.ArrayList; import java.util.Arrays; import java.util.PriorityQueue; import java.util.Scanner; public class Boj1238 { static int n, m, x; public static class Node implements Comparable { int pos; in.. BOJ 2589번 보물섬 ( BFS, Brute Force ) JAVA BOJ 2589번 보물섬 ( BFS, Brute Force ) JAVA 풀이 구현 문제이다. 논리를 생각하는 것은 매우 쉽다. 육지끼리 가장 멀리에 있는 케이스를 찾는 것은 모든 경우에 대해서 BFS를 돌려보면 알 수 있다. 링크 https://www.acmicpc.net/problem/2589 소스 코드 package boj; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Boj2589 { static int n, m; static boolean[][] map; public static class Node { int x, y; int cnt; public Node(int x, int y.. BOJ 1949번 우수 마을 ( DP, DFS ) JAVA BOJ 1949번 우수 마을 ( DP, DFS ) JAVA 풀이 Tree 와 DP의 만남이랄까. 1번 노드를 Root로 잡고, DFS를 활용해서 문제의 답을 도출한다. 점화식은 아래와 같다. dp[cur][1] += dp[child][0]; dp[cur][0] += Math.max(dp[child][0],dp[child][1]); 링크 https://www.acmicpc.net/problem/1949 소스 코드 package boj; import java.util.ArrayList; import java.util.Scanner; public class Boj1949 { static ArrayList map = new ArrayList(); static int n; static int[] p; static.. BOJ 5014번 스타트링크 ( BFS ) JAVA BOJ 5014번 스타트링크 ( BFS ) JAVA 풀이 BFS를 이용하여 문제를 해결한다. # DFS로 해결하면 시간 초과 -> 최단 경로는 BFS를 이용해서 구하는 게 효율적임. # BFS를 사용할 때는 값을 넣음과 동시에 visited를 true로 변경해줘야 한다. ( poll할 때, 넣어주면, 중복이 일어남 ) 링크 https://www.acmicpc.net/problem/5014 소스 코드 package boj; import java.util.LinkedList; import java.util.Queue; import java.util.Scanner; public class Boj5014 { static int s, g, f, u, d; public static class Node { int s.. BOJ 2169번 로봇 조종하기 ( DP ) JAVA BOJ 2169번 로봇 조종하기 ( DP ) JAVA 풀이 temp 배열을 선언하여, 왼쪽 오른쪽에서 오는 경우를 미리 구해준 다음에, 연산을 진행하는 식으로 해결하면 되는 문제입니다. 링크 https://www.acmicpc.net/problem/2169 소스 코드 import java.util.Scanner; public class Boj2169 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n,m; n= sc.nextInt(); m =sc.nextInt(); int[][] a = new int[n+1][m+1]; for(int i=1;i BOJ 2098번 외판원 순회 ( DP ) JAVA BOJ 2098번 외판원 순회 ( DP ) JAVA 풀이 dp 와 비트마스킹이 합쳐진 문제였습니다. visit 배열을 따로 선언하지 않고, 비트마스킹을 이용하여 문제를 풀이하는 것이 첫 번째 포인트였고, 어떤 노드에서 시작하건, 결국 최솟값은 같다는 것을 알아차리는 것이 두번째 포인트였던 것 같습니다. 링크 https://www.acmicpc.net/problem/2098 소스 코드 package boj; import java.util.Arrays; import java.util.Scanner; public class Boj2098 { static int[][] a; static int[][] dp; static final int INF = 16 * 1_000_000; public static void .. BOJ 5557번 1학년 ( DP ) JAVA BOJ 5557번 1학년 ( DP ) JAVA 풀이 3차원 배열과 메모이제이션을 활용하여 해결하는 문제였습니다. 링크 https://www.acmicpc.net/problem/5557 소스 코드 package boj; import java.util.Arrays; import java.util.Scanner; public class Boj5557 { static long res = 0; static long[][][] dp; public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; dp = new long[n][21][2]; for (int i =.. 이전 1 ··· 5 6 7 8 9 다음