https://www.acmicpc.net/problem/2775
๋ฌธ์
ํ์ ๋ฐ์ํ์ ์ฐธ์ํ๋ ๊ฒ์ ์ข์ํ๋ ์ฃผํฌ๋ ์ด๋ฒ ๊ธฐํ์ ๋ถ๋ ํ์ฅ์ด ๋๊ณ ์ถ์ด ๊ฐ ์ธต์ ์ฌ๋๋ค์ ๋ถ๋ฌ ๋ชจ์ ๋ฐ์ํ๋ฅผ ์ฃผ์ตํ๋ ค๊ณ ํ๋ค.
์ด ์ํํธ์ ๊ฑฐ์ฃผ๋ฅผ ํ๋ ค๋ฉด ์กฐ๊ฑด์ด ์๋๋ฐ, “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
์์ ์ ๋ ฅ 1
2
1
3
2
3
์์ ์ถ๋ ฅ 1
6
10
๋ด ํด๋ต
#include <iostream>
using namespace std;
int find_member_count(int floor, int address)
{
int apt[15][15];
for (int f = 0; f <= floor; ++f)
{
for (int a = 1; a <= address; ++a)
{
// 0์ธต์ผ ๊ฒฝ์ฐ
if (f == 0)
apt[0][a] = a;
// 1ํธ์ผ ๊ฒฝ์ฐ
else if (a == 1)
apt[f][1] = 1;
// ๊ทธ ์ธ์ ๊ฒฝ์ฐ
else
{
apt[f][a] = apt[f][a - 1] + apt[f - 1][a];
}
}
}
return apt[floor][address];
}
int main()
{
int count = 0;
cin >> count;
for (int i = 0; i < count; ++i)
{
int floor, address = 0;
cin >> floor >> address;
cout << find_member_count(floor, address) << endl;
}
}
'๐ฅ๏ธ Study Note > Coding Test' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ์ ๊ตญ์ฌ์ฌ(C++) (0) | 2023.05.11 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค / level.3 / ๋ฑ๊ตฃ๊ธธ(C++) (0) | 2023.05.09 |
ํ๋ก๊ทธ๋๋จธ์ค / level.1 / ์ฒด์ก๋ณต(C++) (0) | 2023.05.07 |
ํ๋ก๊ทธ๋๋จธ์ค / level.1 / ๋๋จธ์ง๊ฐ 1์ด ๋๋ ์ ์ฐพ๊ธฐ(C++) (0) | 2023.05.06 |
ํ๋ก๊ทธ๋๋จธ์ค / level.2 / ์ง์ง์ด ์ ๊ฑฐํ๊ธฐ(C++) (0) | 2023.05.06 |