๋ฌธ์
๋ฌธ์
NรN ๊ฒ์ํ์ ์๊ฐ ์ ํ์ ธ ์๋ค. ์ด ๊ฒ์์ ๋ชฉํ๋ ๊ฐ์ฅ ์ผ์ชฝ ์ ์นธ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ ์นธ์ผ๋ก ๊ท์น์ ๋ง๊ฒ ์ ํ๋ฅผ ํด์ ๊ฐ๋ ๊ฒ์ด๋ค.
๊ฐ ์นธ์ ์ ํ์๋ ์๋ ํ์ฌ ์นธ์์ ๊ฐ ์ ์๋ ๊ฑฐ๋ฆฌ๋ฅผ ์๋ฏธํ๋ค. ๋ฐ๋์ ์ค๋ฅธ์ชฝ์ด๋ ์๋์ชฝ์ผ๋ก๋ง ์ด๋ํด์ผ ํ๋ค. 0์ ๋ ์ด์ ์งํ์ ๋ง๋ ์ข ์ฐฉ์ ์ด๋ฉฐ, ํญ์ ํ์ฌ ์นธ์ ์ ํ์๋ ์๋งํผ ์ค๋ฅธ์ชฝ์ด๋ ์๋๋ก ๊ฐ์ผ ํ๋ค. ํ ๋ฒ ์ ํ๋ฅผ ํ ๋, ๋ฐฉํฅ์ ๋ฐ๊พธ๋ฉด ์ ๋๋ค. ์ฆ, ํ ์นธ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ ํ๋ฅผ ํ๊ฑฐ๋, ์๋๋ก ์ ํ๋ฅผ ํ๋ ๋ ๊ฒฝ์ฐ๋ง ์กด์ฌํ๋ค.
๊ฐ์ฅ ์ผ์ชฝ ์ ์นธ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ ์นธ์ผ๋ก ๊ท์น์ ๋ง๊ฒ ์ด๋ํ ์ ์๋ ๊ฒฝ๋ก์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ๊ฒ์ ํ์ ํฌ๊ธฐ N (4 โค N โค 100)์ด ์ฃผ์ด์ง๋ค. ๊ทธ ๋ค์ N๊ฐ ์ค์๋ ๊ฐ ์นธ์ ์ ํ์ ธ ์๋ ์๊ฐ N๊ฐ์ฉ ์ฃผ์ด์ง๋ค. ์นธ์ ์ ํ์๋ ์๋ 0๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 9๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ ์ ์์ด๋ฉฐ, ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ ์นธ์๋ ํญ์ 0์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
๊ฐ์ฅ ์ผ์ชฝ ์ ์นธ์์ ๊ฐ์ฅ ์ค๋ฅธ์ชฝ ์๋ ์นธ์ผ๋ก ๋ฌธ์ ์ ๊ท์น์ ๋ง๊ฒ ๊ฐ ์ ์๋ ๊ฒฝ๋ก์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ค. ๊ฒฝ๋ก์ ๊ฐ์๋ $2^{63}-1$๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
ํ์ด๊ณผ์
1.๊ท์น
- ํ์ฌ ์นธ์ ์ ํ์๋ ์ ๋งํผ ์ค๋ฅธ์ชฝ๊ณผ ์๋์ชฝ์ผ๋ก๋ง ์ ํํ ์ ์์ต๋๋ค.
- ๊ฒ์ ํ์ ํฌ๊ธฐ N (4 โค N โค 100)์ด๊ณ , ๊ฒฝ๋ก์ ๊ฐ์๋ $2^{63}-1$๋ณด๋ค ์๊ฑฐ๋ ๊ฐ์ต๋๋ค.
2.์์
ํํธ๋ฅผ ๋ด ๋๋ค.
Figure 2๋ฅผ ๋ณด๋ฉด 1->0, 1->0, 3->0์ผ๋ก ์ ๋ต์ด 3์ด ๋์์์ ์ ์ ์์ต๋๋ค.
๊ฒฐ๊ตญ, ํ์ฌ ์นธ์ ์ ํ์๋ ์๋งํผ ์ค๋ฅธ์ชฝ, ์๋ซ์ชฝ ์นธ์ผ๋ก ์ด๋ํ์ฌ
ํ์ฌ ์นธ์ ๋ฐ์ ์๋งํผ ์ฆ๊ฐํด์ฃผ๋ฉด ๋ฉ๋๋ค.
๊ฒฝ๋ก์ ๊ฐ์ $2^{63}-1$๋ 9,223,372,036,854,775,807 ์ด๋ฏ๋ก,
โ9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 ์ ๋ฒ์๋ฅผ ๊ฐ๋ long longํ 2์ฐจ๋ฐฐ์ด์ ์ฌ์ฉํฉ๋๋ค.(long long board[101][101])
์์์ ์ธ d[0][0]์นธ์์ ๋ฌด์กฐ๊ฑด ์ ํ๋ฅผ ํด์ผ ํ๋ฏ๋ก 1๋ก ์ด๊ธฐํ ํด๋ก๋๋ค.(d[0][0]=1)
board[i][j]=2๋ผ๋ฉด ์ค๋ฅธ์ชฝ, ์๋์ชฝ์ผ๋ก 2์นธ๊น์ง ์ ํํ ์ ์๋๋ฐ, ๊ฒ์ํ์ ๋ฒ์ด๋์ง ์๋ ๊ฒฝ์ฐ์๋ง ์ฆ๊ฐ์ ํด์ค์ผํฉ๋๋ค.
์ฆ, ์๋์ชฝ ์ ํ(i)๋ฅผ ํ ๋ i๊ฐ ๋งจ ์๋ซ์นธ์ด ์๋๊ณ , i+2๊ฐ N๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ง,
์ค๋ฅธ์ชฝ ์ ํ(j)๋ฅผ ํ ๋ j๊ฐ ๋งจ ๋์นธ์ด ์๋๊ณ , j+2๊ฐ N๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ง
ํ์ฌ๊น์ง ์ ํํ ํ์๋ก ์ฆ๊ฐํด ์ค๋๋ค.
๋ฐ๋ผ์ ์ ํ์์
jump = board[i][j]
if(i๊ฐ ๋งจ ์๋ซ์นธ์ด ์๋๊ณ , i+jump๊ฐ N๋ณด๋ค ์์ ๊ฒฝ์ฐ) d[i+jump][j] += d[i][j]
if(j๊ฐ ๋งจ ๋์นธ์ด ์๋๊ณ , j+jump๊ฐ N๋ณด๋ค ์์ ๊ฒฝ์ฐ) d[i][j+jump] += d[i][j]
์ ๋๋ค.
3.์ฝ๋
'๐ค PS(Problem Solving) > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/c++] 10828๋ฒ - ์คํ (0) | 2019.08.06 |
---|---|
[๋ฐฑ์ค/c++] 10942๋ฒ - ํฐ๋ฆฐ๋๋กฌ? (0) | 2019.08.04 |
[๋ฐฑ์ค/c++] 11048๋ฒ - ์ด๋ํ๊ธฐ (0) | 2019.08.02 |
[๋ฐฑ์ค/c++] 11004๋ฒ - K๋ฒ์งธ ์ (0) | 2019.08.02 |
[๋ฐฑ์ค/c++] 11652๋ฒ - ์นด๋ (0) | 2019.08.02 |