Tags
- ๊ตฌํ
- ์๋ฎฌ๋ ์ด์
- sort
- ๊ต์ฌ
- ๊ทธ๋ํ ํ์
- stack
- ๋ฐฑํธ๋ํน
- CodingTest
- PGM
- Python
- ๊ทธ๋ํ ์ด๋ก
- queue
- DP
- ์๋ฃ๊ตฌ์กฐ
- Brute Force Algorithm
- Java
- greedy
- ๊น์ด ์ฐ์ ํ์
- ์ ์๋ก
- ๋๋น ์ฐ์ ํ์
- BOJ
- LV2
- ๋ฌธ์์ด
- ์ ๋ ฌ
- BFS
- ์ํ
- Dynamic Programming
- dfs
- Study
- SpringBoot
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_9095 : 1, 2, 3 ๋ํ๊ธฐ ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- ์ ๋ ฅ๋ฐ์ ์๋ฅผ 1,2,3์ผ๋ก ๋ง๋ค ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
- dp์ ํ๊ท ๋ฐฉ๋ฒ ๋ ๊ฐ์ง๋ก ํ์ด ๊ฐ๋ฅํ๋ฐ, dp๋ก ํ์ดํ๋ค.
- 1,2,3 ์ ๋ง๋๋ ๊ฒฝ์ฐ์ ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
- (1) : 1 >> 1๊ฐ
- (2) : 1+1 , 2 >> 2๊ฐ
- (3) : 1+1+1, 1+2, 2+1, 3 >> 4๊ฐ
- 1,2,3์ ๊ธฐ๋ณธ๊ฐ์ผ๋ก ์ ์ฅํด๋๊ณ , 4๋ถํฐ '1,2,3 ๋ํ๊ธฐ ์ด๋ค ์'์ ๊ฒฝ์ฐ์ ์๋ฅผ ์๊ฐํ๋ค.
- 1+3 : 1 + (3์ ํํ ํ ์ ์๋ ๊ฒฝ์ฐ์ ์) >> 1+(1+1+1), 1+(1+2), 1+(2+1), 1+(3)
- 2+2 : 2 + (2๋ฅผ ํํ ํ ์ ์๋ ๊ฒฝ์ฐ์ ์) >> 2+(1+1) , 2+(2)
- 3+1 : 3 + (1์ ํํ ํ ์ ์๋ ๊ฒฝ์ฐ์ ์) >> 3+(1)
- ์ด๋ ๊ฒ ๋ชจ๋ ์กฐํฉ์ด ๊ฐ๋ฅํ๋ฐ, ๊ฒฐ๊ตญ ์ ํ์์ dp[n] = dp[n-3] + dp[n-2] + dp[n-1] ์ด ๋๋ค .
- 1,2,3 ์ ๋ง๋๋ ๊ฒฝ์ฐ์ ์๋ ๋ค์๊ณผ ๊ฐ๋ค.
๐ธ ์ฝ๋ ๐ธ
dp = [1,2,4]
for _ in range(int(input())):
t = int(input())
if len(dp) < t:
for _ in range(t - len(dp)):
dp.append(dp[-1] + dp[-2] + dp[-3])
print(dp[t-1])
๐ธ ์ฝ๋ ํด์ ๐ธ
- dp ๋ฆฌ์คํธ์ 1,2,3์ ๊ฒฝ์ฐ์ ์ 1,2,4๋ฅผ ์ ์ฅํ๋ค.
- ์ ๋ ฅ๋ฐ์ ์๊ฐ dp๋ฆฌ์คํธ์ ํฌ๊ธฐ๋ณด๋ค ํฌ๋ฉด(์กด์ฌํ์ง ์๋ ์ธ๋ฑ์ค๋ฉด), ์ฐจ์ด๋งํผ ๋ฐ๋ณต๋ฌธ์ ๋๋ ค ๋ฆฌ์คํธ๋ฅผ ๋๋ฆฐ๋ค.
- dp ๋ฆฌ์คํธ์์ ์ ๋ ฅ ์ ์ธ๋ฑ์ค์ ๊ฐ์ ์ถ๋ ฅํ๋ค.
๐ธ end ๐ธ
- ๋ฐ๋ณต ๊ท์น์ ๋์น์ฑ์ง๋ง, ์๋ฆฌ๊ฐ ์ดํด๋์ง ์์์ ํ์ด ํฌ์คํ
์ ์ฐพ์๋ณด์๋ค.
- ๊ฒฝ์ฐ์ ์๊ฐ ๋์ด๋๋ ์๋ฆฌ๋ฅผ ๊ฐ๋จํ ์ดํดํ ์ ์์๋ค.
- ๋ค๋ฅธ ๊ธ์์ ํ๊ท๋ก ์๋ฆฌ๋ฅผ ์ค๋ช
ํ ๊ฑธ ๋ดค๋๋ฐ, ๊ธ์ด ๊ธธ์ด์ง๊น๋ด ์ค๋ช
ํ์ง ์์๋ค.
- 0๋ถํฐ 1, 2, 3์ ๋ํ๊ณ , ๊ฐ ๊ฐ์์ ๋ค์ 1, 2, 3์ ๋ํด๊ฐ๋ฉฐ ์๊ฐ ๊ณ์ ๋์ด๋๋ ์๋ฆฌ๋ค.
- dp๋ฌธ์ ๋ฅผ ๋ ์ฐ์ตํด์ผ๊ฒ ๋ค.
728x90
'CodingTest > Python' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_11659 : ๊ตฌ๊ฐ ํฉ ๊ตฌํ๊ธฐ 4 (0) | 2022.09.05 |
---|---|
BOJ_9461 : ํ๋๋ฐ ์์ด (0) | 2022.09.03 |
BOJ_2579 : ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2022.09.02 |
BOJ_9375 : ํจ์ ์ ์ ํด๋น (0) | 2022.09.01 |
BOJ_17219 : ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ (0) | 2022.08.30 |