2017/04/06 4

BOJ#9520 NP-Hard

BOJ#9520 NP-Hard * 문제https://www.acmicpc.net/problem/9520 * 풀이- 규칙 : 번호가 K인 도시를 방문하려면, K보다 작은 번호를 가진 모든 도시를 K번을 방문하기 전에 모두 방문하거나, 방문한 후에 모두 방문해야 한다.즉, K보다 번호가 작은 도시 중 하나를 K번 이전에 방문하고, 다른 하나를 K번 이후에 방문하면 안된다. 위 규칙을 만족하는 방문 수열은 아래와 같이 만들 수 있습니다. 맨 처음 1번 도시를 방문 : {1}그 다음 2번 도시는 수열의 왼쪽 또는 오른쪽에 들어갈 수 있습니다 : {2, 1}, {1, 2}그 다음 3번 도시는 수열의 왼쪽 또는 오른쪽에 들어갈 수 있습니다 : {3, 2, 1}, {2, 1, 3}, {3, 1, 2}, {1, 2, ..

Algorithm/DP 2017.04.06

BOJ#12101 1, 2, 3 더하기 2

BOJ#12101 1, 2, 3 더하기 2 * 문제https://www.acmicpc.net/problem/12101 * 풀이dfs로 풀었습니다. dfs를 돌리면 자연스럽게 오름차순으로 결과가 나옵니다.풀이는 쉽기 때문에 생략합니다. dp로 다시 푼 후 업데이트 예정. * 나의 코드https://github.com/stack07142/BOJ/blob/master/BOJ%2312101_Sum123_2/src/Main.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; /** * BOJ#12101 1, 2, 3 더하기 2 * ..

Algorithm/DP 2017.04.06

BOJ#1987 알파벳 (Letters)

BOJ#1987 알파벳 (Letters) * 문제https://www.acmicpc.net/problem/1987 * 풀이알파벳이 중복되는지 판단하는 방법으로 2가지 방법을 사용해 보았습니다.(비트마스크, 길이가 26인 boolean visited 배열) * 나의 코드https://github.com/stack07142/BOJ/tree/master/BOJ%231987_Alphabet/src import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; /** * BOJ#1987 알파벳 * https://www.acmicpc.net/proble..

BOJ#11048 이동하기

BOJ#11048 이동하기 * 문제https://www.acmicpc.net/problem/11048 * 풀이풀이는 생략합니다.dp 초기값만 주의할 것. * 나의 코드https://github.com/stack07142/BOJ/blob/master/BOJ%2311048_Move/src/Main.java import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; /** * BOJ#11048 이동하기 * https://www.acmicpc.net/problem/11048 */ public class..

Algorithm/DP 2017.04.06