๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 2688_์ค„์–ด๋“ค์ง€ ์•Š์•„

๋ฟŒ์•ผ._. 2026. 1. 12. 10:51
๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/2688)

< ์ค„์–ด๋“ค์ง€ ์•Š์•„ >

 

๋ฌธ์ œ ํ’€์ด 

 

์ค„์–ด๋“ค์ง€ ์•Š๋Š” ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด ํ˜„์žฌ ์ž๋ฆฌ์—์„œ (ํ˜„์žฌ ์ž๋ฆฌ-1)์ด ์ž์‹ ๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ๊ฒฝ์šฐ๋ฅผ ํ•ฉํ•œ๋‹ค.  

 

my solution (Java)

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

public class _2688_ { // ์ค„์–ด๋“ค์ง€ ์•Š์•„

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

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

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

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

		for (int i = 0; i < t; i++) {
			int n = Integer.parseInt(bf.readLine());

			long result = 0;
			for (int j = 0; j < 10; j++) {
				result += dp[n][j];
			}
			bw.write(result + "\n");
		}
		bw.flush();
	}
}
๋ณ€์ˆ˜)
dp : ์ค„์–ด๋“ค์ง€ ์•Š๋Š” n์ž๋ฆฌ์˜ ์ˆ˜ ๊ฐœ์ˆ˜
t :  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜
n : ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค
result : ์ค„์–ด๋“ค์ง€ ์•Š๋Š” n์ž๋ฆฌ ์ˆ˜์˜ ๊ฐœ์ˆ˜  

 

์ž…๋ ฅ๊ฐ’์œผ๋กœ ๋“ค์–ด์˜ฌ ์ˆ˜ ์žˆ๋Š” ์ตœ๋Œ€ n๊ฐ’์ด 64์ด๋ฏ€๋กœ ๋จผ์ €, ์ตœ๋Œ“๊ฐ’์„ ๊ธฐ์ค€์œผ๋กœ ์ค„์–ด๋“ค์ง€ ์•Š๋Š” ์ž๋ฆฟ์ˆ˜์˜ ๊ฐœ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค ๊ฐœ์ˆ˜๋งŒํผ ๊ฐ’์„ ์ž…๋ ฅ๋ฐ›์•„ n์ž๋ฆฌ์˜ 0๋ถ€ํ„ฐ 9๊นŒ์ง€ ๊ฐ’์„ ํ•ฉํ•ด ์ถœ๋ ฅํ•œ๋‹ค.    

 

* long์„ ์จ์•ผ ํ•œ๋‹ค.