ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [λ°±μ€€] 8394 μ•…μˆ˜ with Python
    PS 2022. 3. 2. 23:53
    728x90
    λ°˜μ‘ν˜•

    πŸ“Œ BOJ 8394 μ•…μˆ˜

    πŸ’‘ 쑰건

    1. νšŒμ˜κ°€ 끝났고, 이제 μ•…μˆ˜λ₯Ό ν•˜λŠ” μ‹œκ°„μ΄λ‹€. λͺ¨λ“  μ‚¬λžŒμ€ μ§μ‚¬κ°ν˜• νƒμž ν•˜λ‚˜μ˜ ν•œ 면에 μ•‰μ•„μžˆλ‹€.

    2. 자리λ₯Ό λ²—μ–΄λ‚˜μ§€ μ•Šκ³  μ•…μˆ˜λ₯Ό ν•˜λŠ” λ°©λ²•μ˜ 수λ₯Ό κ΅¬ν•˜λŠ” 문제

    3. 각 μ‚¬λžŒλ“€μ€ μžμ‹ μ˜ μ™Όμͺ½μ΄λ‚˜ 였λ₯Έμͺ½μ— μžˆλŠ” μ‚¬λžŒλ“€κ³Ό μ•…μˆ˜λ₯Ό ν•  수 μžˆλ‹€. (μ•ˆ ν•  μˆ˜λ„ μžˆλ‹€)

    4. 첫째 쀄에 νšŒμ˜μ— μ°Έμ„ν•œ μ‚¬λžŒμ˜ 수 n (1 ≀ n ≀ 10,000,000)이 주어진닀.

    5. μˆ˜κ°€ 맀우 컀질 수 있기 λ•Œλ¬Έμ—, λ§ˆμ§€λ§‰ 자리만 좜λ ₯ν•œλ‹€.

    6. λ‹€μ΄λ‚˜λ―Ήν”„λ‘œκ·Έλž˜λ° μœ ν˜•μ˜ 문제

    πŸ–₯ μ†ŒμŠ€ μ½”λ“œ

    from sys import stdin
    n = int(stdin.readline())
    
    arr = [0 for _ in range(n + 1)]
    arr[0], arr[1] = 1, 1
    for i in range(2, n + 1):
        arr[i] = (arr[i-1] + arr[i - 2]) % 10
    
    print(arr[n])

    πŸ”– 예제 및 μ‹€ν–‰κ²°κ³Ό

    예제

    4

    μ‹€ν–‰κ²°κ³Ό

    5

    ⌨️ 문제 풀이

    1. n 이 1일 λ•ŒλŠ” μ•…μˆ˜λ₯Ό μ•ˆν•˜λŠ” 경우, n이 2일 λ•ŒλŠ” μ•…μˆ˜λ₯Ό μ•ˆν•˜λŠ” κ²½μš°μ™€ λ‘˜μ΄ μ•…μˆ˜λ₯Ό ν•˜λŠ” κ²½μš°κ°€ μžˆλ‹€.

    2. n 이 3일 λ•ŒλŠ” μ„Έλ²ˆμ§Έ μ‚¬λžŒμ΄ μ•…μˆ˜λ₯Ό μ•ˆν• κ²½μš°, 이 λ•ŒλŠ” 두λͺ…이 μžˆμ„ κ²½μš°μ™€ κ°™κΈ° λ•Œλ¬Έμ— dp[i-1] κ³Ό κ°™λ‹€κ³  ν•  수 μžˆλ‹€.

    3. μ„Έλ²ˆμ§Έ μ‚¬λžŒμ΄ μ•…μˆ˜λ₯Ό ν•  경우, 첫번째 μ‚¬λžŒμ΄ 혼자 남기 λ•Œλ¬Έμ— dp[n-2]와 κ°™λ‹€κ³  ν•  수 μžˆλ‹€.

    4. dp[n] = dp[n-2] + dp[n-1]

    5. μ΄λŠ” ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜ 점화식과 κ°™μœΌλ‚˜, 맨 λ§ˆμ§€λ§‰ 숫자만 좜λ ₯ν•˜λ©΄ λœλ‹€.

    πŸ’Ύ λŠλ‚€μ 

    1. λ‚˜λŠ” ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄μ˜ 점화식과 같은지 λͺ¨λ₯΄κ³ , μ „μˆ˜μ‘°μ‚¬λ₯Ό ν†΅ν•΄μ„œ 문제λ₯Ό νŒŒμ•…ν•˜κ³  κ·œμΉ™μ„ μ°Ύμ•˜λ‹€.
    λ°˜μ‘ν˜•

    λŒ“κΈ€

Designed by Tistory.