โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Dynamic Programming

[๋™์  ๊ณ„ํš๋ฒ• 1] [Python] 1904๋ฒˆ. 01ํƒ€์ผ

2021. 1. 12. 16:09
๋ชฉ์ฐจ
  1. ์ž…๋ ฅ
  2. ์ถœ๋ ฅ
  3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
  4. ํ•ด๊ฒฐ ๊ณผ์ •

www.acmicpc.net/problem/1904

 

1904๋ฒˆ: 01ํƒ€์ผ

์ง€์›์ด์—๊ฒŒ 2์ง„ ์ˆ˜์—ด์„ ๊ฐ€๋ฅด์ณ ์ฃผ๊ธฐ ์œ„ํ•ด, ์ง€์›์ด ์•„๋ฒ„์ง€๋Š” ๊ทธ์—๊ฒŒ ํƒ€์ผ๋“ค์„ ์„ ๋ฌผํ•ด์ฃผ์…จ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๊ฐ๊ฐ์˜ ํƒ€์ผ๋“ค์€ 0 ๋˜๋Š” 1์ด ์“ฐ์—ฌ ์žˆ๋Š” ๋‚ฑ์žฅ์˜ ํƒ€์ผ๋“ค์ด๋‹ค. ์–ด๋А ๋‚  ์ง“๊ถ‚์€ ๋™์ฃผ๊ฐ€ ์ง€์›์ด

www.acmicpc.net

 

 

์ž…๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ž์—ฐ์ˆ˜ N์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค N โ‰ค 1,000,000)

์ถœ๋ ฅ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ง€์›์ด๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธธ์ด๊ฐ€ N์ธ ๋ชจ๋“  2์ง„ ์ˆ˜์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ 15746์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.


ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•

์–ธ๋œป๋ณด๋ฉด ์–ด๋ ค์›Œ ๋ณด์ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ํƒ€์ผ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜์—๋Š” ๊ทœ์น™์ด ์žˆ๋‹ค.

N
1 2 3 4 5 6 7
2์ง„ ์ˆ˜์—ด์˜
๊ฒฝ์šฐ์˜ ์ˆ˜
1 2 3 5 8 13 21

ํ”ผ๋ณด๋‚˜์น˜์™€ ๊ฐ™์€ ์ ํ™”์‹์„ ๊ฐ€์ง„๋‹ค. f(n) = f(n-1) + f(n-2)

ํ•˜์ง€๋งŒ ์ฃผ์˜ํ•  ์ ์ด ์‹œ๊ฐ„ ์ œํ•œ์ด 0.75์ดˆ์— 256MB์˜ ๋ฉ”๋ชจ๋ฆฌ๋ผ๋Š” ์ ์ด๋‹ค.

์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ ˆ๋Œ€ ํ†ต๊ณผํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋ผ๋Š” ๋œป์ด๋‹ค.

 

 

ํ•ด๊ฒฐ ๊ณผ์ •

๋‚˜๋Š” ์ฒซ๋ฒˆ์งธ ์‹œ๋„์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ๋‚˜์™”์—ˆ๋‹ค.

dp๋กœ ๊ตฌํ˜„ํ–ˆ๊ธฐ์— ๋ฌด์กฐ๊ฑด ํ†ต๊ณผ๋ผ๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€ ๋‚˜์™€์„œ ๋‹นํ™ฉํ–ˆ๋‹ค.

 

๋ฌธ์ œ๋ฅผ ๋‹ค์‹œ ์‚ดํŽด๋ณธ ๊ฒฐ๊ณผ

์ฒซ ๋ฒˆ์งธ ์ค„์— ์ง€์›์ด๊ฐ€ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋Š” ๊ธธ์ด๊ฐ€ N์ธ ๋ชจ๋“  2์ง„ ์ˆ˜์—ด์˜ ๊ฐœ์ˆ˜๋ฅผ 15746์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์ด๊ฒŒ ํ•ต์‹ฌ์ด์—ˆ๋‹ค.

dp ๋ฐฐ์—ด์— 15746์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ๋„ฃ์–ด์คŒ์œผ๋กœ์จ 15745 ์ดํ•˜์˜ ๊ฐ’๋“ค๋งŒ ์ด์šฉํ•˜๊ณ  ์ด ๊ณผ์ •์œผ๋กœ ์—ฐ์‚ฐ ๊ณผ์ •์—์„œ ๋ฉ”๋ชจ๋ฆฌ ์†Œ๋ชจ๋ฅผ ์ค„์ด๋Š” ๊ฒƒ์ด์—ˆ๋‹ค.

 

'%15746' ์ฝ”๋“œ๋ฅผ ์ถ”๊ฐ€ํ•˜์˜€๋”๋‹ˆ ๋ฐ”๋กœ ํ†ต๊ณผํ•˜์˜€๋‹ค.

 

์ตœ์ข… ์ฝ”๋“œ๋Š” 

 

def main():
    n = int(input())
    
    number = [0]*1000001
    
    if n == 1:
        print(1)
    elif n == 2:
        print(2)
    else:
        number[1] = 1
        number[2] = 2
        for i in range(3, n+1):
            number[i] = (number[i-1] + number[i-2])%15746
        print(number[n])
        
if __name__ == "__main__":
    main()
์ €์ž‘์žํ‘œ์‹œ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„ > Dynamic Programming' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[๋™์  ๊ณ„ํš๋ฒ• 1] [C++] 1932๋ฒˆ. ์ •์ˆ˜ ์‚ผ๊ฐํ˜•  (0) 2021.01.13
[๋™์  ๊ณ„ํš๋ฒ• 1] [C++] 1149๋ฒˆ. RGB ๊ฑฐ๋ฆฌ  (0) 2021.01.13
[๋™์  ๊ณ„ํš๋ฒ• 1] [C++] 9461๋ฒˆ. ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด  (0) 2021.01.13
[๋™์  ๊ณ„ํš๋ฒ• 1] [Python] 9184๋ฒˆ. ์‹ ๋‚˜๋Š” ํ•จ์ˆ˜ ์‹คํ–‰  (0) 2021.01.12
[๋™์  ๊ณ„ํš๋ฒ• 1] [Python] 1003๋ฒˆ. ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜  (0) 2021.01.12
  1. ์ž…๋ ฅ
  2. ์ถœ๋ ฅ
  3. ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•
  4. ํ•ด๊ฒฐ ๊ณผ์ •
'โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„/Dynamic Programming' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [๋™์  ๊ณ„ํš๋ฒ• 1] [C++] 1149๋ฒˆ. RGB ๊ฑฐ๋ฆฌ
  • [๋™์  ๊ณ„ํš๋ฒ• 1] [C++] 9461๋ฒˆ. ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด
  • [๋™์  ๊ณ„ํš๋ฒ• 1] [Python] 9184๋ฒˆ. ์‹ ๋‚˜๋Š” ํ•จ์ˆ˜ ์‹คํ–‰
  • [๋™์  ๊ณ„ํš๋ฒ• 1] [Python] 1003๋ฒˆ. ํ”ผ๋ณด๋‚˜์น˜ ํ•จ์ˆ˜
kodo_o
kodo_o
iOS ๊ฟ€์žผ!
kodo_o
๐ŸŽ๐Ÿ
kodo_o
์ „์ฒด
์˜ค๋Š˜
์–ด์ œ
  • ๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (149)
    • ๐Ÿ”จ ํ”„๋กœ์ ํŠธ (0)
      • TP 1 (0)
      • WhiteHCCTV (0)
      • FootPrint (0)
    • ๐Ÿ’ป ๊ฐœ๋ฐœ (63)
      • iOS (30)
      • Android (6)
      • Kotlin (4)
      • Flutter (9)
      • Node.js (5)
      • Architecture (1)
      • ์˜ค๋Š˜์˜ ์‚ฝ์งˆ (7)
      • ์—๋Ÿฌ์™€์˜ ๋™์นจ (1)
    • โœ๏ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ (6)
      • Graph (6)
      • String (0)
      • Sort (0)
    • โœ๏ธ ์ฝ”ํ…Œ ์ค€๋น„ (44)
      • Math (1)
      • Implementation (3)
      • String (3)
      • Brute Force (5)
      • Back Tracking (7)
      • Greedy (0)
      • Dynamic Programming (13)
      • Binary Search (1)
      • DFS, BFS (5)
      • Shortest Path (2)
      • Two Pointer (4)
      • MST (0)
    • ๐Ÿ“š CS (6)
      • Operating System (6)
    • โ›น๏ธ ๋ผ์ดํ”„ (30)
      • 2020 ๊ฒจ์šธ๋ฐฉํ•™ ๋ชจ๊ฐ์ฝ”(๊ฐœ์ธ) (12)
      • 2021 ์—ฌ๋ฆ„๋ฐฉํ•™ ๋ชจ๊ฐ์ฝ”(๊ฐœ์ธ) (6)
      • ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ (1)
      • ํšŒ๊ณ  (10)

๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

  • ํ™ˆ
  • ๊นƒํ—ˆ๋ธŒ

์ธ๊ธฐ ๊ธ€

์ตœ๊ทผ ๊ธ€

์ตœ๊ทผ ๋Œ“๊ธ€

hELLO ยท Designed By ์ •์ƒ์šฐ.
kodo_o
[๋™์  ๊ณ„ํš๋ฒ• 1] [Python] 1904๋ฒˆ. 01ํƒ€์ผ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”

๋‹จ์ถ•ํ‚ค

๋‚ด ๋ธ”๋กœ๊ทธ

๋‚ด ๋ธ”๋กœ๊ทธ - ๊ด€๋ฆฌ์ž ํ™ˆ ์ „ํ™˜
Q
Q
์ƒˆ ๊ธ€ ์“ฐ๊ธฐ
W
W

๋ธ”๋กœ๊ทธ ๊ฒŒ์‹œ๊ธ€

๊ธ€ ์ˆ˜์ • (๊ถŒํ•œ ์žˆ๋Š” ๊ฒฝ์šฐ)
E
E
๋Œ“๊ธ€ ์˜์—ญ์œผ๋กœ ์ด๋™
C
C

๋ชจ๋“  ์˜์—ญ

์ด ํŽ˜์ด์ง€์˜ URL ๋ณต์‚ฌ
S
S
๋งจ ์œ„๋กœ ์ด๋™
T
T
ํ‹ฐ์Šคํ† ๋ฆฌ ํ™ˆ ์ด๋™
H
H
๋‹จ์ถ•ํ‚ค ์•ˆ๋‚ด
Shift + /
โ‡ง + /

* ๋‹จ์ถ•ํ‚ค๋Š” ํ•œ๊ธ€/์˜๋ฌธ ๋Œ€์†Œ๋ฌธ์ž๋กœ ์ด์šฉ ๊ฐ€๋Šฅํ•˜๋ฉฐ, ํ‹ฐ์Šคํ† ๋ฆฌ ๊ธฐ๋ณธ ๋„๋ฉ”์ธ์—์„œ๋งŒ ๋™์ž‘ํ•ฉ๋‹ˆ๋‹ค.