๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11057_์˜ค๋ฅด๋ง‰ ์ˆ˜

๋ฟŒ์•ผ._. 2026. 1. 15. 11:20
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/11057)

< ์˜ค๋ฅด๋ง‰ ์ˆ˜ >

 

๋ฌธ์ œ ํ’€์ด 

 

dp๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ž๋ฆฟ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚ ์ˆ˜๋ก ํ˜„์žฌ ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๋”ํ•œ๋‹ค. 

 

my solution (Java)

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

public class _11057_ { // ์˜ค๋ฅด๋ง‰ ์ˆ˜

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));

		int n = Integer.parseInt(bf.readLine());

		int dp[][] = new int[n + 1][10];
		for (int i = 0; i < 10; i++) {
			dp[1][i] = 1;
		}

		for (int i = 2; i < n + 1; i++) {
			for (int j = 0; j < 10; j++) {
				for (int k = 0; k <= j; k++) {
					dp[i][j] = (dp[i][j] + dp[i - 1][k]) % 10007;
				}
			}
		}

		int result = 0;
		for (int i = 0; i < 10; i++) {
			result = (result + dp[n][i]) % 10007;
		}

		System.out.println(result);
	}
}
๋ณ€์ˆ˜)
n : ์ž…๋ ฅ๊ฐ’ 
dp : 1~N์ธ ์˜ค๋ฅด๋ง‰ ์ˆ˜
result : ๊ธธ์ด๊ฐ€ N์ธ ์˜ค๋ฅด๋ง‰ ์ˆ˜ 

 

n์„ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. 1 ์ž๋ฆฟ์ˆ˜์ผ ๋•Œ๋Š” ๊ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ 1๊ฐœ์ด๋ฏ€๋กœ dp[1][0~9]๋ฅผ 1๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ๋‹ค์Œ ์ž๋ฆฟ์ˆ˜๋ถ€ํ„ฐ๋Š” ํ˜„์žฌ ๊ฐ’๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฐ’์„ ๋”ํ•ด์•ผ ํ•œ๋‹ค. 

 

์ตœ์ข… dp[n][0~9] ๊ฐ’์„ ๋”ํ•ด ์ถœ๋ ฅํ•œ๋‹ค.