백준 1194 - Java (BFS,비트마스킹)
https://www.acmicpc.net/problem/1194 풀이 이 문제를 보면 기본적으로 bfs를 사용해서 풀 수 있겠다는 생각이 든다.하지만 어려운 부분은 바로a, b, c, d ,e ,f 라는 열쇠와 그에 대응하는A, B, C, D, E, F 라는 문에 대해서이다. 이에 이진법으로 각 열쇠마다 아래와 같이 대입한다 a= 1(2), b = 10(2), c = 100(2) ...그럼 a와 c열쇠를 가지고 있다면 101(2)이 되는것이다.!그렇다면 a,c열쇠를 가진 상태를 정수로 하면 5가 될것이다.int now = 5 // 현재 가진 열쇠정보A라는 문을 만난다면 아래 조건식처럼 계산하면 된다// 예제코드 문에 해당하는 열쇠검사1if ((now & (1 그리고 a~f 까지면 111111(2) 이..
백준 1823 수확(DP) - Java
https://www.acmicpc.net/problem/1823 * 예제입력513152 * 예제출력43 풀이1. DP로 풀어야 한다.n=5이고 5번 숫자를 입력받는다. 이를 정수형 배열에 넣는다.배열 arr의 크기는 n이 아닌 편의를 위해 n+1 로 지정함.그럼 arr={0, 1, 3, 4, 5, 7} 2. DP로 풀기위해 2차원 배열 생성.int [][]dy = new int[n+1][n+1];먼저 단일 반복문으로 1~n까지 dy[i][i] = arr[i] 에 넣는다.그럼 아래 이미지와 같다. 이 말은 1, 3, 1 ,5, 2 각 한자리 수로 수확하는 값이다1*1, 3*1... 은 자기 자신이니까 값이 대입된다. 2. 이제부터가 중요하다.dy[1][2]를 구해야 한다.참고로 dy[1][2]의 의..