๋ฌธ์
ํ์ ๋ฐ์ํ์ ์ฐธ์ํ๋ ๊ฒ์ ์ข์ํ๋ ์ฃผํฌ๋ ์ด๋ฒ ๊ธฐํ์ ๋ถ๋ ํ์ฅ์ด ๋๊ณ ์ถ์ด ๊ฐ ์ธต์ ์ฌ๋๋ค์ ๋ถ๋ฌ ๋ชจ์ ๋ฐ์ํ๋ฅผ ์ฃผ์ตํ๋ ค๊ณ ํ๋ค.
์ด ์ํํธ์ ๊ฑฐ์ฃผ๋ฅผ ํ๋ ค๋ฉด ์กฐ๊ฑด์ด ์๋๋ฐ, “a์ธต์ bํธ์ ์ด๋ ค๋ฉด ์์ ์ ์๋(a-1)์ธต์ 1ํธ๋ถํฐ bํธ๊น์ง ์ฌ๋๋ค์ ์์ ํฉ๋งํผ ์ฌ๋๋ค์ ๋ฐ๋ ค์ ์ด์์ผ ํ๋ค” ๋ ๊ณ์ฝ ์กฐํญ์ ๊ผญ ์งํค๊ณ ๋ค์ด์์ผ ํ๋ค.
์ํํธ์ ๋น์ด์๋ ์ง์ ์๊ณ ๋ชจ๋ ๊ฑฐ์ฃผ๋ฏผ๋ค์ด ์ด ๊ณ์ฝ ์กฐ๊ฑด์ ์งํค๊ณ ์๋ค๊ณ ๊ฐ์ ํ์ ๋, ์ฃผ์ด์ง๋ ์์ ์ ์ k์ n์ ๋ํด k์ธต์ nํธ์๋ ๋ช ๋ช ์ด ์ด๊ณ ์๋์ง ์ถ๋ ฅํ๋ผ. ๋จ, ์ํํธ์๋ 0์ธต๋ถํฐ ์๊ณ ๊ฐ์ธต์๋ 1ํธ๋ถํฐ ์์ผ๋ฉฐ, 0์ธต์ iํธ์๋ i๋ช ์ด ์ฐ๋ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ Test case์ ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ทธ๋ฆฌ๊ณ ๊ฐ๊ฐ์ ์ผ์ด์ค๋ง๋ค ์ ๋ ฅ์ผ๋ก ์ฒซ ๋ฒ์งธ ์ค์ ์ ์ k, ๋ ๋ฒ์งธ ์ค์ ์ ์ n์ด ์ฃผ์ด์ง๋ค
์ถ๋ ฅ
๊ฐ๊ฐ์ Test case์ ๋ํด์ ํด๋น ์ง์ ๊ฑฐ์ฃผ๋ฏผ ์๋ฅผ ์ถ๋ ฅํ๋ผ.
์ ํ
- 1 ≤ k, n ≤ 14
ํ์ด
์กฐ๊ธ ์ด์ํ ์ํํธ ๊ฐ๋ค.
01. ๋ฐ๋ณต์ ์ด์ฉ
ํธ์๊ฐ ์ต๋ 14ํธ๊น์ง์ด๋ฏ๋ก, 15*14 ์ด์ฐจ์ ๋ฐฐ์ด์ ์์ฑํ ํ, ๋ฐ๋ณต๋ฌธ์ ํตํด ์ํํธ์ ์ฃผ๋ฏผ ์๋ฅผ ๋ชจ๋ ๊ตฌํ๋ค.
์ดํ ํด๋นํ๋ ์ธต๊ณผ ํธ์๋ฅผ ์ด์ฉํด ๋ฐ๋ก ์ถ๋ ฅํ๋ค.
ํ์ง๋ง ๊ตณ์ด ์ํํธ์ ์ฃผ๋ฏผ ์๋ฅผ ๋ชจ๋ ๊ตฌํ ํ์๋ ์์ ๊ฒ ๊ฐ์์,
int arr[15][14]์ ๋จผ์ 1์ธต์ ์ฃผ๋ฏผ ์๋ฅผ ๋ฃ์ ํ, ์๋ ์ธต์ ์ฃผ๋ฏผ ์๋ฅผ ํ๋์ฉ ๋ํด์ฃผ๋ ๋ฐฉ๋ฒ์ผ๋ก ํ์๋ค.
(๋ฌผ๋ก ์ด๋ฒ ๋ฌธ์ ๋ ์ ํ ์๊ฐ์ด ์กฐ๊ธ ์ฌ์ ๋กญ๊ธฐ ๋๋ฌธ์ ์ํํธ์ ์ฃผ๋ฏผ ์๋ฅผ ๋ชจ๋ ๊ตฌํ ์ ์๋ค!)
#include <iostream>
using namespace std;
int main(){
int T, K, N;
cin >> T;
for (int i=0; i<T; i++){
cin >> K;
cin >> N;
int arr[15][14]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14};
// k์ธต์ nํธ์ ๋ช ๋ช
์ด ์ด๊ณ ์๋๊ฐ
int resident;
for (int floor=1; floor<=K; floor++){
for (int room=0; room<N; room++){
resident += arr[floor-1][room];
arr[floor][room] = resident;
}
resident=0;
}
cout << arr[K][N-1] << endl;
}
}
๋ฐ๋ณต๋ฌธ์ ํ ๋ฒ ๋ ์จ์ ๋์ฑ ๊ฐ๋จํ๊ฒ ๋ง๋ค ์ ์๋ค.
for (int i = 0; i < t; i++) {
int res[15][14] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 };
cin >> k >> n;
for (int j = 1; j <= k; j++) {
for (int l = 0; l < n; l++) {
for (int m = 0; m <= l; m++) {
res[j][l] += res[j - 1][m];
}
}
}
cout << res[k][n - 1] << endl;
}
02. ์ฌ๊ท ์ด์ฉ
https://aorica.tistory.com/124๋์ ํ์ด์ธ๋ฐ ๊ฐ๊ฒฐํด๋ณด์ฌ์ ๊ณต์ ํ๋ค!
#include <iostream>
using namespace std;
int getNum(int a, int b){
if(b == 1)
return 1;
if(a == 0)
return b;
return (getNum(a-1, b) + getNum(a, b-1));
}
int main() {
int T, k, n;
cin>>T;
for(int i=0; i<T; i++){
cin>>k>>n;
cout<<getNum(k, n)<<'\n';
}
}
https://www.acmicpc.net/problem/2775
3๋ฒ๋ง์ ์ฑ๊ณตํด์ ๊ธฐ๋ถ์ด ์ข๋ค ํฌํฌ
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 1011๋ฒ : Fly me to the Alpha Centauri (0) | 2021.08.05 |
---|---|
[๋ฐฑ์ค/C++] 2839๋ฒ : ์คํ ๋ฐฐ๋ฌ (0) | 2021.08.04 |
[๋ฐฑ์ค/C++] 10250 : ACM ํธํ (0) | 2021.08.02 |
[๋ฐฑ์ค/C++] 2869๋ฒ : ๋ฌํฝ์ด๋ ์ฌ๋ผ๊ฐ๊ณ ์ถ๋ค. (0) | 2021.07.25 |
[๋ฐฑ์ค/C++] 1193๋ฒ : ๋ถ์์ฐพ๊ธฐ (0) | 2021.07.24 |
๋๊ธ