코딩테스트/[백준] 코딩테스트 연습
![소수 화폐](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwaTBY%2FbtrpiuWQqDo%2FRWLC8ckuzTmFKyYXlALUL1%2Fimg.png)
소수 화폐
풀이 방법 2 dp[2] = dp[2] + dp[2-2]; // 0 + 1 dp[3] = dp[3] + dp[3-2]; // 0 + 0 dp[4] = dp[4] + dp[4-2]; // 0 + 1 dp[5] = dp[5] + dp[5-2]; // 0 + 0 dp[6] = dp[6] + dp[6-2]; // 0 + 1 dp[7] = dp[7] + dp[7-2]; // 0 + 0 dp[8] = dp[8] + dp[8-2]; // 0 + 1 3 dp[3] = dp[3] + dp[3-3]; // 0 + 1 dp[4] = dp[4] + dp[4-3]; // 1 + 0 dp[5] = dp[5] + dp[5-3]; // 0 + 1 dp[6] = dp[6] + dp[6-3]; // 1 + 1 dp[7] = dp[7] ..
![줄세우기 - 2631번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FwuKy2%2FbtrpcM4nVH4%2Fa1LGNP8H2KTKGKgolQRZvk%2Fimg.png)
줄세우기 - 2631번
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; static int max = 0; static ArrayList list = new ArrayList(); static int[] dp; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); dp = new int[N]; for (int i = 0; i < N; i++) { dp[i..
![그대, 그머가 되어 - 14496번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd4jmI%2FbtroWoqktsk%2FDmI9G54Vr1ZUIloSPUH3B0%2Fimg.png)
그대, 그머가 되어 - 14496번
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int a, b, N, M; static int count = 0; static boolean[] visited; static ArrayList list = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()); a = Integer..
![악덕 영주 혜유](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FekMd2Q%2FbtroQFLERJC%2Fti53nguYd0PHSqm3Xq09R0%2Fimg.png)
악덕 영주 혜유
풀이 방법 MST를 이용해서 모든 마을을 연결할 수 있는 최소 비용을 구해주었다. 그 경로 중 마을과 마을을 이동할 때 최악의 비용이 얼마인지 구해주기 위해 MST를 저장해주었다. 최악의 비용을 구하기 위해서는 임의의 한곳에서 dfs로 가장 먼 노드를 찾아주고 그 노드를 시작으로 dfs를 하면 나오게 된다. 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int K, N, max, start; static int[][] arr; static int[][] arr2; static boolean[] visited; static Queue pq = new PriorityQueue(); public..
![플로이드 - 11404번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnIR4m%2FbtroPvJYH7I%2FIybOYNxgtOd6p81mLVdpmK%2Fimg.png)
플로이드 - 11404번
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int M, N; static int[][] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); M = Integer.parseInt(br.readLine()); arr = new int[N + 1][N + 1]; StringTokenizer st = null; for (int i = ..
![쉬운 계단 수 - 10844번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F0AeuQ%2FbtrmYbMdRP4%2FDgpMkOPvT7DYLAQ7aAvBI1%2Fimg.png)
쉬운 계단 수 - 10844번
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); int[][] arr = new int[101][10]; for (int i = 1; i < 10; i++) { arr[1][i] = 1; } for (int i = 1; i < N; i++) { arr[i + 1][0] = arr..
![최소 힙 - 1927번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbOM1Bb%2FbtrmYD9rUWF%2FCghMyacYEeO2AX03YuXmI1%2Fimg.png)
최소 힙 - 1927번
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; static PriorityQueue pq = new PriorityQueue(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); int x = 0; for (int i = 0; i < N; i++) { x = Integer.parseInt(br.readLine()); if (..
![0만들기 - 7490번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FblX4JS%2FbtrmXoSMrgM%2FAxoE8hw5k8gp1lqp1qtxVK%2Fimg.png)
0만들기 - 7490번
풀이 방법 DFS를 이용해서 모두 탐색 후 결과가 0으로 만족되면 list에 저장 list를 정렬 후 출력해줘야함 내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int K, N; static ArrayList list = new ArrayList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); K = Integer.parseInt(br.readLine()); for (int i = 0; i < K..
![카드 섞기 -21315번](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fc3BYTU%2FbtrmLA7ZFyq%2FSHMF7ecwtrSCYGZO4ujd80%2Fimg.png)
카드 섞기 -21315번
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; static int[] arr; static LinkedList ll = new LinkedList(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); N = Integer.parseInt(br.readLine()); arr = new int[N]; StringTokenizer st = new StringTokenizer(br.readLine..
![트리 순회](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fxf0gD%2FbtrmQ3ANSLN%2F3XUVpspZKqN0YJS716SYZK%2Fimg.png)
트리 순회
내 코드 package com.company; import java.io.*; import java.util.*; public class Main { static int N; static int[][] arr; static Map map = new HashMap(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = null; N = Integer.parseInt(br.readLine()); for (int i = 0; i < N; i++) { st = new StringToken..