Algorithm/Problem_백준15 동적 계획법1(RGB 거리, 정수 삼각형) [RGB 거리 _ 1149] * 로직 N개의 집마다 R,G,B를 칠할 때 드는 비용을 갖기 때문에 cost[N+1][3], dp[N+1][3]으로 설정한다 여기서 dp[N+1][3]은 해당 집까지 얻을 수 있는 비용의 최솟값을 저장한다 3가지 경우로 dp과정을 진행한다 dp[i][0]: i번째 집에서 R을 선택할 때 얻을 수 있는 최솟값 dp[i][1]: i번째 집에서 G을 선택할 때 얻을 수 있는 최솟값 dp[i][2]: i번째 집에서 B을 선택할 때 얻을 수 있는 최솟값 진행이 끝나면, dp[N][0], dp[N][1], dp[N][2] 중 최솟값을 출력한다 //RGB 거리 import java.io.BufferedReader; import java.io.IOException; import java... 2020. 3. 10. 백트래킹(N과 M - 1~4) [N과 M(1) - 15649] 순열 뽑았던 카드는 다시 뽑을 수 없음 [N과 M(2) - 15649] 조합 뽑았던 카드는 다시 뽑을 수 없음 [N과 M(3) - 15649] 순열 뽑았던 카드는 다시 뽑을 수 있음 [N과 M(4) - 15649] 조합 뽑았던 카드는 다시 뽑을 수 있음 //N과 M (1) import java.util.Scanner; public class Problem_15649 { static int N, M; static boolean[] checked; static StringBuilder sb; static int[] arr; public static void main(String[] args) { Scanner scanner = new Scanner(System.in); N =.. 2020. 3. 3. 브루트포스(체스판 다시 칠하기) [체스판 다시 칠하기 - 1018] * 로직 (0,0)부터 8*8 보드를 만들 수 있는 기준점으로 한 칸씩 이동한다 이동하면서 왼쪽 상단의 시작인 "W", "B"인 경우를 고려한다 "W"인 경우 행이 짝수이면서 열도 짝수라면 -> 해당 좌표 값이 "W"가 아니면 cnt++ 열이 홀수라면 -> 해당 좌표 값이 "B"가 아니면 cnt++ 행이 홀수이면서 열이 짝수라면 -> 해당 좌표 값이 "B"가 아니면 cnt++ 열이 홀수라면 -> 해당 좌표 값이 "W"가 아니면 cnt++ "B"인 경우도 같은 방식으로 진행한다 최소 개수를 갱신하고 출력한다 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader;.. 2020. 2. 25. 이전 1 2 3 4 5 다음