녕의 학습 기록

백준_1947 선물 전달 (조합 순열) 본문

Algorithm/Algorithm 문제

백준_1947 선물 전달 (조합 순열)

kjyyjk 2024. 4. 8. 20:14

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class BJ_1947_선물전달 {

    static long t = 1000000000;

    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        long[] d = new long[n+2]; //n=1 또는 2일 경우 아래 두줄에서 인덱스 에러. 따라서 n+2를 해줌
        d[1] = 0;
        d[2] = 1;

        for (int i=3; i<n+1; i++) {
            d[i] = ((i-1) * (d[i-2] % t + d[i-1] % t)) % t; //d[i] = (n-1) * (d[n-2] + d[n-1])
        }

        System.out.println(new StringBuilder().append(d[n]));
    }
}
 

1947번: 선물 전달

경우의 수를 1,000,000,000으로 나눈 나머지를 첫째 줄에 출력한다.

www.acmicpc.net

 

'Algorithm > Algorithm 문제' 카테고리의 다른 글

백준_14501 퇴사 (DP)  (0) 2024.04.13
백준_1463 1로 만들기 (DP)  (0) 2024.04.11
백준_1256 사전 (조합 순열)  (0) 2024.04.08
백준_1722 순열의 순서 (조합 순열)  (0) 2024.04.06
백준_13251 조약돌 꺼내기  (0) 2024.04.01