์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- ๋ชป๊ทธ๋ฆฌ์ง๋ง
- ์ฝ๋ํธ๋ฆฌ
- ๋์ ํ๋ก๊ทธ๋๋ฐ
- ์ผ์ฑsw์ญํ
- programmers
- ํ๋ก๊ทธ๋๋จธ์ค
- ์ด์งํ์
- ์ฝ๋ฉํ ์คํธ
- JS
- ๊ทธ๋ํ ํ์
- BFS
- Algorithm
- DART
- BAEKJOON
- JavaScript
- DP
- ๊ตฌํ
- ์ฐ์ จ์์
- ์นด์นด์ค
- c#
- Java
- ์คํฐ๋
- ํ์ด์ฌ
- ๋ฌธ์์ด ํ์ฑ
- ๋ฐฑ์ค
- ์๊ณ ๋ฆฌ์ฆ
- sort
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์๋ฃ๊ตฌ์กฐ
- Flutter
- Today
- Total
Algo ์ฐ์
[Baekjoon] 9095๋ฒ 1, 2, 3 ๋ํ๊ธฐ ๋ณธ๋ฌธ
โถ ๋ฌธ์ : https://www.acmicpc.net/problem/9095
=> ๊ธฐ์กด ๋ฐฑ์ค ๋ฌธ์ ๋ฅผ Javascript๋ฅผ ์ด์ฉํด ํ์ดํ์์๋๋ฐ, ์ ์ถ๋ ฅ๊ด๋ จํด์ ๋ง๊ฒ ํ์ด๋ ํ๋ฆฌ๋ค ๋์ค๋ ๊ฒฝ์ฐ๊ฐ ์์ด์ ๋ฐฑ์ค์ ๊ฒฝ์ฐ๋ python์ ์ฌ์ฉํด์ ํ์ดํ๊ธฐ๋ก ๊ฒฐ์ ํ์๋ค.
โถ ์ฝ๋ :
# https://www.acmicpc.net/problem/9095
# ๋ฐฑ์ค 1, 2, 3 ๋ํ๊ธฐ
T = int(input())
testCase = []
for t in range(T):
testCase.append(int(input()))
maxNum = max(testCase)
dp = [0 for _ in range(maxNum+1)]
dp[1] = 1
dp[2] = 2
dp[3] = 4
for i in range(4, maxNum+1):
dp[i] = dp[i - 1] + dp[i - 2] + dp[i - 3]
for t in testCase:
print(dp[t])
โถ ๋ฌธ์ ํ์ด :
- DP ๋ฌธ์ ์ด๋ค.
1. ์ด๊ธฐ ์ ๋ ฅ์ ๋ฐ์ ์ ๋ ฅ ์ค ๊ฐ์ฅ ํฐ์๋ฅผ ์ฐพ๋๋ค.
2. ๊ทธํ maxNum๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ฉฐ dp ๋ฐฐ์ด์ ๊ฐ์ ์ ์ฅํ๋ค.
=> ํด๋น ๋ฌธ์ ์์๋ 1, 2, 3์ผ๋ก ๋ง์ ์ ํํํ๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
=> ์ด๋ ๊ฐ ์ ๋ณ๋ก ์์ํ๋ ๊ฐ์ด 1, 2, 3 ์ผ๋ ๋์ฌ ์ ์๋ ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ๊ธฐ ์ํ ์ ํ์์
F(n) = F(n-1) + F(n-2) + F(n-3)
์ด๋ค.
๋ฐ๋ผ์ ์์ ์ ํ์์ ์ด์ฉํด for๋ฌธ์ ๋๋ ค์ฃผ๋ฉด dp ๋ฐฐ์ด์ ๋์ ํ๊ณ , ์ด๋ ์ฃผ์ด์ง ์ ๋ ฅ์์ ๊ฐ์ฅ ํฐ ์๋งํผ ๋ฐ๋ณตํ๋ฉฐ ๋ฐฐ์ด์ ์ฑ์ด๋ค์ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํด์ค๋ค.
'๐ฏ CodingTest > BaekJoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BaekJoon] 17626๋ฒ Four Squares (0) | 2022.06.03 |
---|---|
[BaekJoon] 17219๋ฒ ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ (0) | 2022.06.03 |
[BaekJoon] 11724๋ฒ ์ฐ๊ฒฐ ์์์ ๊ฐ์ (0) | 2022.06.03 |
[BaekJoon] 2606๋ฒ ๋ฐ์ด๋ฌ์ค (0) | 2022.06.02 |
[BaekJoon] 2579๋ฒ ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2022.06.02 |