๋ฐ์ํ
[BOJ] 2775๋ฒ ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ
https://www.acmicpc.net/problem/2775
๋ฌธ์ ์ ๊ทผ
๋ฐฑ์ค์์ ์์ ๋ก ์ค ์
๋ ฅ๊ณผ ์ถ๋ ฅ์ ํ๋์ฉ ์ฐ๋ค๋ณด๋ฉด ๊ท์น์ด ๋ณด์ด๊ฒ ๋๋ค.
000 -> 0
001 -> 1
002 -> 2
003 -> 3
100 -> 0
101 -> 1
102 -> 3
103 -> 6
200 -> 0
201 -> 1
202 -> 4
203 -> 10
์ด๋ 103ํธ์๋ 003ํธ์ 102ํธ๋ฅผ ํฉ์น ๊ฐ์ด ์๊ณ , 203ํธ์๋ 103ํธ์ 202ํธ๋ฅผ ํฉ์น ๊ฐ์ด ์๋ค.
์ด๋ฅผ ์ ํ์์ผ๋ก ๋ฐ๊ฟ๋ณด๋ฉด (k0n)ํธ = k-10nํธ + k0n-1ํธ
์ฝ๋๋ก ๋ฐ๊ฟ๋ณด๋ฉด dp[floor][room] = dp[foor-1][n] + dp[floor][n-1]์ด ๋๋ค. ์ด๋ฅผ ์ฝ๋๋ก ๋ฐ๊พธ๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
Code
import java.io.*;
public class BOJ2775 {
static int[][] dp = new int[15][15];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int T;
T = Integer.parseInt(br.readLine());
while (0 < T--){
int k,n;
k = Integer.parseInt(br.readLine());
n = Integer.parseInt(br.readLine());
sb.append(getPeopleCount(k, n) + "\n");
}
bw.write(sb.toString());
bw.flush();
bw.close();
br.close();
}
public static int getPeopleCount(int floor, int room){
for (int i = 0; i <= floor; i++) {
for (int j = 1; j <= room; j++) {
if(dp[i][j] != 0){
continue;
}
if (i == 0)
{
dp[i][j] = j;
}
else
{
dp[i][j] = dp[i-1][j] + dp[i][j-1];
}
}
}
return dp[floor][room];
}
}
๋ฐ์ํ
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Algorithm/Java][๋ฐฑ์ค] 14226๋ฒ ์ด๋ชจํฐ์ฝ (0) | 2022.06.05 |
---|---|
[Algorithm/Java][๋ฐฑ์ค] 2252๋ฒ ์ค ์ธ์ฐ๊ธฐ (0) | 2022.05.24 |
[Algorithm/Java][๋ฐฑ์ค] 1197๋ฒ ์ต์ ์คํจ๋ ํธ๋ฆฌ (0) | 2022.05.22 |
[Algorithm/Java][๋ฐฑ์ค] 1916๋ฒ ์ต์๋น์ฉ ๊ตฌํ๊ธฐ (0) | 2022.05.20 |
[Algorithm/Java][๋ฐฑ์ค] 1806๋ฒ ๋ถ๋ถํฉ (0) | 2022.05.18 |