알고리즘(6)
-
[백준] 11057 오르막 수 - 자바(Java)
11057번 오르막 수 문제 오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다. 입력 첫쩨 줄에 N(1
2022.05.28 -
[백준] 10844 쉬운 계단 수 - 자바(Java)
10844번 쉬운 계단 수 문제 45656이란 수를 보자. 이 수는 인접한 모든 자리의 차이가 1이다. 이런 수를 계단 수라고 한다. N이 주어질 때, 길이가 N인 계단 수가 총 몇 개 있는지 구해보자. 0으로 시작하는 수는 계단 수가 아니다. 입력 첫째 줄에 N이 주어진다. N은 1보다 크거나 같고, 100보다 작거나 같은 자연수이다. 출력 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. https://www.acmicpc.net/problem/10844 10844번: 쉬운 계단 수 첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net 작은 문제의 답을 구하여 규칙을 구한다 dp[1] = 9 dp[2] = 17 dp[3] = 32 d..
2022.05.24 -
[백준] 9095 1, 2, 3 더하기 - 자바(Java)
9095번 1, 2, 3 더하기 문제 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때는 수를 1개 이상 사용해야 한다. 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 각 테스트 케이스마다, n을 1, 2, 3의 합을로 나타내는 방법의 수를 출력한다. https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.ne..
2022.05.24 -
[백준] 11727 2Xn 타일링2 - 자바(Java)
11727번 2Xn 타일링2 문제 2Xn 크기의 직사각형을 1X2, 2X1과 2X2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2X17 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1
2022.05.24 -
[백준] 11726 2Xn 타일링 - 자바(Java)
11726번 2Xn 타일링 문제 2Xn 크기의 직사각형을 1X2, 2X1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2X5 크기의 직사각형을 채운 한 가지 방법의 예이다. 입력 첫째 줄에 n이 주어진다. (1
2022.05.24 -
(알고리즘)Dynamic Programming - 동적 계획법
Dynamic Programming(동적 계획법) : 특정 범위까지의 값을 구하기 위해서 그것과 다른 범위까지의 값을 이용하여 효율적으로 값을 구하는 알고리즘 설계 기법 -> 간단하게 큰 문제를 작은 문제로 나누어 풀어가는 방법 [Dynamic Programming 방법] 동적 계획법은 나누어진 작은 문제들이 반복되는 경우, 이를 이용하여 문제를 푼다. (분할정복과는 차이점이 있다) 푼 작은 문제들은 어떠한 장소에 메모를 해 놓고, 큰 문제를 풀 때 반복되는 작은 문제가 나타날 경우에 메모 해 놓은 정보를 사용한다. (배열 dp[]) [Dynamic Programming 조건] 1. 큰 문제를 작은 문제로 나눌 수 있다 2. 중복되는 작은 문제들이 존제한다. 3. 같은 문제는 구할 때마다 정답이 같다. ..
2022.05.24