[백준] 9019번 DSLR JAVA (자바) 풀이
문제 9019(BFS) : 네 개의 명령어 D, S, L, R 계산기에는 레지스터 = 0 이상 10,000 미만의 십진수 저장 가능 예) 레지스터에 저장된 n (n의 네 자릿수를 d1, d2, d3, d4) 즉 n = ((d1 × 10 + d2) × 10 + d3) × 10 + d4라고 하자)D = n x 2 (결과 값이 9999 보다 큰 경우에는 10000 으로 나눈 나머지)S = n - 1 (n이 0 이라면 9999 가 대신 레지스터에 저장)L = n의 각 자릿수를 왼편으로 회전 (d2, d3, d4, d1)R = n의 각 자릿수를 오른편으로 회전 (d4, d1, d2, d3) : A를 B로 바꾸는 최소한의 명령어를 생성하는 프로그램 [입력] : 첫 줄에 T 개의..
2024. 7. 11.
[백준] 11048번 이동하기 JAVA (자바) 풀이
문제 11048번 (DP) : N×M 크기의 미로 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다 현재 (1, 1)에 있고, (N, M)으로 이동하려고 한다 (r, c)에 있으면, (r+1, c), (r, c+1), (r+1, c+1)로 이동 가능, 각 방의 사탕 획득 가능 (N, M)으로 이동할 때, 가져올 수 있는 사탕 개수의 최댓값 [입력] : 첫째 줄에 미로의 크기 N, M (1 ≤ N, M ≤ 1,000) 둘째 줄부터 N개 줄에는 총 M개의 숫자가 주어지며 각각의 사탕의 개수 ( 0 ≤ 사탕 ≤ 100 ) [출력] : 가져올 수 있는 사탕 개수를 출력 [설명] DP 알고리즘: 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지..
2024. 7. 2.
[백준] 9184번 신나는 함수 실행 JAVA (자바) 풀이
문제 9184번 (DP) : 재귀함수 w(a, b, c)가 있다if a 20 or b > 20 or c > 20, then w(a, b, c) returns: w(20, 20, 20)if a a, b, c가 주어졌을 때, w(a, b, c)를 출력하는 프로그램 otherwise w(2a-2, 2b, c) 출력력 [입력] : 입력은 세 정수 a, b, c로 이루어져 있으며, 한 줄에 하나씩 주어진다 (입력의 마지막은 -1 -1 -1로 나타내며, 세 정수가 모두 -1인 경우는 입력의 마지막을 제외하면 없다) [출력] : w(a, b, c)를 출력 [설명] DP 알고리즘: 이미 계산된 결과는 별도의 메모리 영역에 저장하여 다시 계산하지 않음으로서 수행 시간 단축시키는 방법 ..
2024. 7. 2.