알고리즘/문제
(22.03.19) (Baekjoon) 15988. 1,2,3 더하기 3
Job_E
2022. 3. 19. 19:49
https://www.acmicpc.net/problem/15988
15988번: 1, 2, 3 더하기 3
각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 1,000,000,009로 나눈 나머지를 출력한다.
www.acmicpc.net
1번 문제를 풀었다면 사실상 거저먹는 문제다.
차이라고 해봐야 범위만 다르기 때문(1 : 10, 3 : 1000000. 이때 3번은 1000000009로 나눈 나머지를 출력한다.)
비교를 위해 풀이 링크를 올려놓는다.
(21.12.31) (Baekjoon 9095) 1,2,3 더하기(Java)
https://www.acmicpc.net/problem/9095 9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 입력한 숫자를 1,2,3으로 표현할 수 있는 경우의 수..
kbjid17.tistory.com
더보기
소스코드 보기
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
static int T,N;
static long[] ar;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
ar = new long[1000001];
ar[1] = 1;
ar[2] = 2;
ar[3] = 4;
for (int i = 4; i <= 1000000; i++) {
ar[i] = ((ar[i-1] + ar[i-2]) % 1000000009 + ar[i-3]) % 1000000009;
}
for (int i = 0; i < N; i++) {
int n = Integer.parseInt(br.readLine());
System.out.println(ar[n]);
}
}
}
위처럼 Long으로 선언해주고, 나머지 연산만 신경써주면 된다.