728x90
๋ฐ์ํ
๋ฌธ์ ์ค๋ช
๊ฐ๋ก ๊ธธ์ด๊ฐ 2์ด๊ณ ์ธ๋ก์ ๊ธธ์ด๊ฐ 1์ธ ์ง์ฌ๊ฐํ๋ชจ์์ ํ์ผ์ด ์์ต๋๋ค. ์ด ์ง์ฌ๊ฐํ ํ์ผ์ ์ด์ฉํ์ฌ ์ธ๋ก์ ๊ธธ์ด๊ฐ 2์ด๊ณ ๊ฐ๋ก์ ๊ธธ์ด๊ฐ n์ธ ๋ฐ๋ฅ์ ๊ฐ๋ ์ฑ์ฐ๋ ค๊ณ ํฉ๋๋ค. ํ์ผ์ ์ฑ์ธ ๋๋ ๋ค์๊ณผ ๊ฐ์ด 2๊ฐ์ง ๋ฐฉ๋ฒ์ด ์์ต๋๋ค.
- ํ์ผ์ ๊ฐ๋ก๋ก ๋ฐฐ์น ํ๋ ๊ฒฝ์ฐ
- ํ์ผ์ ์ธ๋ก๋ก ๋ฐฐ์น ํ๋ ๊ฒฝ์ฐ
์๋ฅผ๋ค์ด์ n์ด 7์ธ ์ง์ฌ๊ฐํ์ ๋ค์๊ณผ ๊ฐ์ด ์ฑ์ธ ์ ์์ต๋๋ค.
์ง์ฌ๊ฐํ์ ๊ฐ๋ก์ ๊ธธ์ด n์ด ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ด ์ง์ฌ๊ฐํ์ ์ฑ์ฐ๋ ๋ฐฉ๋ฒ์ ์๋ฅผ return ํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์.
์ ํ์ฌํญ
- ๊ฐ๋ก์ ๊ธธ์ด n์ 60,000์ดํ์ ์์ฐ์ ์ ๋๋ค.
- ๊ฒฝ์ฐ์ ์๊ฐ ๋ง์ ์ง ์ ์์ผ๋ฏ๋ก, ๊ฒฝ์ฐ์ ์๋ฅผ 1,000,000,007์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ returnํด์ฃผ์ธ์.
์ ์ถ๋ ฅ ์
n | result |
4 | 5 |
์ ์ถ๋ ฅ ์ ์ค๋ช
์
์ถ๋ ฅ ์ #1
๋ค์๊ณผ ๊ฐ์ด 5๊ฐ์ง ๋ฐฉ๋ฒ์ด ์๋ค.
๋์ ๋ฌด์ง์ฑ ํ์ด
- ๋ด๊ฐ ์ฝ๋ฉํ๋ ์์๋๋ก ์ ์ด๋ณด๊ธฐ
- ์ฒ์์ ๋ํ ๊ทธ๋ฆฌ๊ธฐ ๋ฌธ์ ๋ผ๊ณ ์๊ฐํ๋ค๊ฐ ๊ทธ๋ ค๋ณด๋๊น
- "ํฉ์ด n์ธ 1๊ณผ 2์ ์์ ์กฐํฉ"์ ์ฐพ๋ ๋ฌธ์ ๊ฐ?
- n = 4
- n = 1+1+1+1
- n = 1+1+2
- n = 1+2+1
- n = 2+1+1
- n = 2+2
- n = 4
- ๋ฌด์ง์ฑ ์ฝ๋ฉ ๊ฐ์ฆ์!
- ํน์ n์ด 4๋ณด๋ค ์์ผ๋ฉด ๊ทธ๋ฅ ๋ฆฌํดํด๋ฒ๋ ค.
- ๊ฒฐ๊ณผ๋ ... ๊บผ์ ธ... ใ ใ ใ
- ์ด๋ป๊ฒ ์งค์ง ๊ณ ๋ฏผํ๋ฉด์ ์ด๋ฐ ์ ๋ฐ ์๊ฐํด๋ณด๊ณ ...
- ๊ทธ๋ฅ ๋ด ๋จธ๋ฆฌ์์์ ๋ด๊ฐ ํธ๋ ๋ฐฉ์์ ์ฝ๋ฉํ๋ค๊ณ ์๊ฐ
- ์๋ ๊ทผ๋ฐ 1, 2๋ฅผ ์์ด์ ์์ด์ ๋ง๋ค๋ฉด ํฉ์ด ๋์ด๊ฐ๋์ง ์ฒดํฌํด์ผํ๊ณ ...
- ์๋ฌด ์๊ฐ์์ด ๊ณ์ 1๊ณผ 2 ์กฐํฉ์ผ๋ก ๊ณ์ ๋ง๋ค์ด๋ณด๋๊น...
- ์ด์ฐ ์ด์ง ์ด์งํ๋ค.
n -> result | ์กฐํฉ | |
1 -> 1 | (1) = 1 | |
2 -> 2 | (1,1) = 1 (2) = 1 |
|
3 -> 3 | (1,1,1) = 1 (1,2) = 2 |
|
4 -> 5 | (1,1,1,1) = 1 (1,1,2) = 3 (2,2) = 1 |
|
5 -> 8 | (1,1,1,1,1) = 1 (1,1,1,2) = 4 (1,2,2) = 3 |
|
6 -> 13 | (1,1,1,1,1,1) = 1 (1,1,1,1,2) = 5 (1,1,2,2) = 6 (3+2+1) (2,2,2) = 1 |
|
7 -> 21 | (1,1,1,1,1,1,1) = 1 (1,1,1,1,1,2) = 6 (1,1,1,2,2) = 10 (4+3+2+1) (1,2,2,2) = 4 |
|
8 -> 34 | (1,1,1,1,1,1,1,1) = 1 (1,1,1,1,1,1,2) = 7 (1,1,1,1,2,2) = 15 (5+4+3+2+1) (1,1,2,2,2) = 10 (4+3+2+1) (2,2,2,2) = 1 |
- ์ด๊ฑฐ ๋ญ๊ฐ ๊ท์น์ด ์๋๋ฐ...
- ์กฐํฉ์ ๊ฐฏ์๊ฐ f(n) = f(n-1) + f(n-2) ๊ฐ์ ๊ท์น์ด ์๋ค?
- ๊ทผ๋ฐ ์กฐํฉ์ด ์ ์ ๋ง์์ง๋๋ฐ... ๋ผ๊ณ ์๊ฐํ๋๋ฐ result ์์ฒด๊ฐ ์์ด์ด์๋ค?
- 1 ์์ ธ๋์ค๋ ๊ฒ ๋๋ฌธ์ 1 ์ด๋ป๊ฒ ์ฒ๋ฆฌํ๋ ์ถ์๋๋ฐ, ์ 1์ด ์์ ธ๋์ค๋๊ฒ ์๋๋ผ f(n-2)์์ 1 ๋ํ๋ ๊ฑฐ๋ผ์ ๊ทธ๋ฅ ํผ๋ณด๋์น ์์ด์ด ๋์ด๋ฒ๋ ธ๋ค.
- ์๋์์?
- ํ ์คํธ ์ผ์ด์ค๋ง ํต๊ณผํ ์์ค๋ฅผ ๋ฐ๋ก ์คํํ์ผ๋...
- ์๋ณด๋๊น a,b ๋ฐ๋๋ก ์จ๋๊ณ , n์ 3์ ๋นผ๋ฒ๋ ธ๋ค?
- ๊ฒฐ๊ณผ๊ฐ๋ 100...007๋ก ๋๋ ๋๋จธ์ง๋ฅผ ๋ฆฌํดํด์ผ๋๋๋ฐ ๋น ํธ๋ฆผ.
def solution(n):
a, b = 2, 3
n -= 2
for i in range(n):
c = a + b
a, b = b, c
return a % 1000000007
- ์์ ํ๊ณ ๋๋ ์ ๋๋ค.
- ์๊ฐ์ด ๋๋ฌด ๋นจ๋ฆฌ ๊ฐ๋ค. ๋ฒ์จ 1์๊ฐ ๋๊ฒ ๊ฑธ๋ ธ๋ค.
- ์ด๊ฑฐ๋ ๋น์ทํ ๋ฌธ์ ๊ฐ 3 x n ํ์ผ๋ง์ด๋ผ๋ ๋ฌธ์ ๊ฐ ์๋๋ฐ ๊ทธ๊ฒ๋ ๋น์ทํ ๊ฒ ๊ฐ๋ค. ๋ฐ๋ก ๋ค์์ ํ์ด๋ด์ผ์ง
์ ํ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (0.78ms, 10.2MB)
ํ
์คํธ 2 ใ ํต๊ณผ (0.09ms, 10MB)
ํ
์คํธ 3 ใ ํต๊ณผ (0.69ms, 10.2MB)
ํ
์คํธ 4 ใ ํต๊ณผ (2.12ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (0.07ms, 10.1MB)
ํ
์คํธ 6 ใ ํต๊ณผ (0.88ms, 10.3MB)
ํ
์คํธ 7 ใ ํต๊ณผ (0.07ms, 10.2MB)
ํ
์คํธ 8 ใ ํต๊ณผ (1.19ms, 10.1MB)
ํ
์คํธ 9 ใ ํต๊ณผ (0.59ms, 9.97MB)
ํ
์คํธ 10 ใ ํต๊ณผ (2.33ms, 10MB)
ํ
์คํธ 11 ใ ํต๊ณผ (0.74ms, 10.1MB)
ํ
์คํธ 12 ใ ํต๊ณผ (0.17ms, 10.1MB)
ํ
์คํธ 13 ใ ํต๊ณผ (0.27ms, 10.3MB)
ํ
์คํธ 14 ใ ํต๊ณผ (0.43ms, 10.2MB)
ํจ์จ์ฑ ํ
์คํธ
ํ
์คํธ 1 ใ ํต๊ณผ (5.03ms, 10.1MB)
ํ
์คํธ 2 ใ ํต๊ณผ (9.52ms, 9.92MB)
ํ
์คํธ 3 ใ ํต๊ณผ (4.48ms, 10MB)
ํ
์คํธ 4 ใ ํต๊ณผ (3.50ms, 10.1MB)
ํ
์คํธ 5 ใ ํต๊ณผ (14.83ms, 10.3MB)
ํ
์คํธ 6 ใ ํต๊ณผ (27.54ms, 10.3MB)
๊ณ ์์ ํ์ด
- ๊น๋ํ๋ค. ๋์ฒ๋ผ ์ฝ์ง ์ํ๊ณ ๋ฐ๋ก ํผ ๋ฏ ใ ก.ใ ก... ๋ฉ์ ธ๋ถ๋ฌ...
def solution(n):
a, b = 1, 1
for i in range(1, n):
a, b = b, (a + b) % 1000000007
return b
728x90
๋ฐ์ํ
'๊ฒ์ ํ๋ก๊ทธ๋๋ฐ > Python ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ๋ก๊ทธ๋๋จธ์ค ๋ฏธ๋ก ํ์ถ (1) | 2023.02.16 |
---|---|
ํ๋ก๊ทธ๋๋จธ์ค ์นด๋ ๋ญ์น (0) | 2023.02.16 |
ํ๋ก๊ทธ๋๋จธ์ค ๊ฐ์ฅ ํฐ ์ ์ฌ๊ฐํ ์ฐพ๊ธฐ (0) | 2023.02.16 |
ํ๋ก๊ทธ๋๋จธ์ค ๋ ํ ํฉ ๊ฐ๊ฒ ๋ง๋ค๊ธฐ (0) | 2023.02.16 |
ํ๋ก๊ทธ๋๋จธ์ค ์ฐ๋ฐ์์ด ์ ์ ๋ถ (0) | 2023.02.15 |