알고리즘(16)
-
다이나믹프로그래밍- 2xn타일링(백준 11726번)
1. 다이나믹프로그래밍- 2xn타일링(백준 11726번) 2. 다이나믹프로그래밍을 이용한 풀이1234567891011121314151617181920212223242526272829303132package dynamicProgramming; import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader; public class Baejun11726tiling { static int[] memo=new int[1001]; static void initMemo(int[] memo) { for(int i=0;imemo[n]=( tiling(n-1)+tiling(n-2) )%10007 하지만 문제의 전제에서 값에 ..
2018.03.17 -
다이나믹프로그래밍- 초콜릿 자르기(백준 2163번)
1. 다이나믹프로그래밍(dynamic programming) 초콜릿 자르기(백준 2163번) 2. 다이나믹프로그래밍을 이용한 문제풀이 12345678910111213141516171819202122232425262728293031323334package dynamicProgramming; import java.util.Scanner; public class Main { static int[][] memo=new int[301][301]; static void initMemo(int[][] memo) { for(int i=0;i
2018.03.17 -
백트랙킹- N-QUEEN(백준 9663번)
1. 백트래킹을 이용한 N-QUEEN 문제 (백준 9663번) 2.백트랙킹을 이용한 풀이 123456789101112131415161718192021222324252627282930313233343536373839package recursiveandbacktracking;import java.util.Scanner; public class Baekjun9663BacktrackingNQueen { static int[] iArr; static int count; static int N; //퀸이 놓일수 있는가? static boolean promising(int[] iArr,int N,int row) { for(int i=0;i
2018.03.16 -
백트랙킹-로또문제(백준 6603번)
1.백트랙킹- 로또문제(백준6603번) 2. 백트랙킹을 이용한 풀이1234567891011121314151617181920212223242526272829303132333435363738394041package recursiveandbacktracking; import java.util.Arrays;import java.util.Scanner; public class Baekjun6603BacktrackingLotto { static int K; static int[] iArr; static int count; static StringBuffer sb=new StringBuffer(); static void dfsForRecursive(int v,String str) { if(count==6) { sb...
2018.03.16 -
재귀호출(재귀함수)-하노이 탑(백준1914번)
재귀를 이용한 하노이탑(백준1914번문제) 재귀를 이용한 하노이탑 문제풀이 1234567891011121314151617181920212223242526272829303132333435package recursiveandbacktracking; import java.math.BigInteger;import java.util.Scanner; public class Baekjun1914hanoiRecursive { static void hanoi(int N,char from,char aux,char to) { if(N==1) { System.out.println(from+" "+to); }else { hanoi(N-1,from,to,aux); System.out.println(from+" "+to); han..
2018.03.09 -
최소신장트리-프림알고리즘(백준 1197번)
이 문제같은 경우는 최소신장트리를 구하는 알고리즘이다. 최소신장트리를 구하는 알고리즘은 크게 프림알고리즘과 크루스칼알고리즘 두가지가 있다. 여기서 조금더 구현하기가 수월한 프림알고리즘을 이용하여 최소신장트리를 구현할것이다. 1. 최소신장 트리란? 최소 신장트리란 주어진 그래프에서 모든 정점을 연결하며 그 비용이 최소인 간선만 연결된 트리를 말한다. 2.프림 알고리즘(그림으로 설명하는 것이 편할 것같아 그림으로 ㅅ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687..
2018.02.22