ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 2302 ๊ทน์žฅ ์ขŒ์„ with Python
    PS 2022. 3. 31. 04:31
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 2302 ๊ทน์žฅ ์ขŒ์„

    ๐Ÿ’ก ์กฐ๊ฑด

    1. ์–ด๋–ค ๊ทน์žฅ์˜ ์ขŒ์„์€ ํ•œ ์ค„๋กœ ๋˜์–ด ์žˆ์œผ๋ฉฐ ์™ผ์ชฝ๋ถ€ํ„ฐ ์ฐจ๋ก€๋Œ€๋กœ 1๋ฒˆ๋ถ€ํ„ฐ N๋ฒˆ๊นŒ์ง€ ๋ฒˆํ˜ธ๊ฐ€ ๋งค๊ฒจ์ ธ ์žˆ๋‹ค.
      ๊ณต์—ฐ์„ ๋ณด๋Ÿฌ ์˜จ ์‚ฌ๋žŒ๋“ค์€ ์ž๊ธฐ์˜ ์ž…์žฅ๊ถŒ์— ํ‘œ์‹œ๋˜์–ด ์žˆ๋Š” ์ขŒ์„์— ์•‰์•„์•ผ ํ•œ๋‹ค.

    2. ์ž๊ธฐ์˜ ๋ฐ”๋กœ ์™ผ์ชฝ ์ขŒ์„ ๋˜๋Š” ๋ฐ”๋กœ ์˜ค๋ฅธ์ชฝ ์ขŒ์„์œผ๋กœ๋Š” ์ž๋ฆฌ๋ฅผ ์˜ฎ๊ธธ ์ˆ˜ ์žˆ๋‹ค.

    3. ์ด ๊ทน์žฅ์—๋Š” โ€œVIP ํšŒ์›โ€๋“ค์ด ์žˆ๋‹ค. ์ด ์‚ฌ๋žŒ๋“ค์€ ๋ฐ˜๋“œ์‹œ ์ž๊ธฐ ์ขŒ์„์—๋งŒ ์•‰์•„์•ผ ํ•˜๋ฉฐ ์˜† ์ขŒ์„์œผ๋กœ ์ž๋ฆฌ๋ฅผ ์˜ฎ๊ธธ ์ˆ˜ ์—†๋‹ค.

    4. ์˜ค๋Š˜ ๊ณต์—ฐ์€ ์ž…์žฅ๊ถŒ์ด ๋งค์ง„๋˜์–ด 1๋ฒˆ ์ขŒ์„๋ถ€ํ„ฐ N๋ฒˆ ์ขŒ์„๊นŒ์ง€ ๋ชจ๋“  ์ขŒ์„์ด ๋‹ค ํŒ”๋ ธ๋‹ค.
      VIP ํšŒ์›๋“ค์˜ ์ขŒ์„ ๋ฒˆํ˜ธ๋“ค์ด ์ฃผ์–ด์กŒ์„ ๋•Œ, ์‚ฌ๋žŒ๋“ค์ด ์ขŒ์„์— ์•‰๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์˜ ๊ฐ€์ง“์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

    5. N์€ 1 ์ด์ƒ 40 ์ดํ•˜์ด๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ๊ณ ์ •์„์˜ ๊ฐœ์ˆ˜ M์ด ์ž…๋ ฅ๋œ๋‹ค.
      ๋ฐฉ๋ฒ•์˜ ๊ฐ€์ง“์ˆ˜๋Š” 2,000,000,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. (2,000,000,000 < 231-1)

    6. ๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ ์œ ํ˜•์˜ ๋ฌธ์ œ

    ๐Ÿ–ฅ ์†Œ์Šค ์ฝ”๋“œ

    from sys import stdin
    
    n, m = int(stdin.readline()), int(stdin.readline())
    vip = []
    
    for _ in range(m):
        vip.append(int(stdin.readline()))
    
    arr = [1, 1, 2]
    for i in range(3, 41):
        arr.append(arr[i-2] + arr[i-1])
    
    
    ans = 1
    
    if m > 0:
        pre = 0
        for i in range(m):
            ans *= arr[vip[i] - 1 - pre]
            pre = vip[i]
        ans *= arr[n - pre]
    else:
        ans = arr[n]
    print(ans)

    ๐Ÿ”– ์˜ˆ์ œ ๋ฐ ์‹คํ–‰๊ฒฐ๊ณผ

    ์˜ˆ์ œ

    9
    2
    4
    7

    ์‹คํ–‰๊ฒฐ๊ณผ

    12

    โŒจ๏ธ ๋ฌธ์ œ ํ’€์ด

    1. m ์˜ ํฌ๊ธฐ๋งŒ ํผ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ vip ๋ฆฌ์ŠคํŠธ์— ์ €์žฅํ•œ๋‹ค.

    2. n์˜ ๊ฐ’์— ๋”ฐ๋ผ ๊ฐ€์ง“์ˆ˜๋ฅผ ์ •๋ฆฌํ•˜๋ฉด ์•„๋ž˜์™€ ๊ฐ™๋‹ค.
      n = 0 ์ผ ๋•Œ๋Š” ํ•œ๊ฐ€์ง€๋กœ ๋ณธ๋‹ค.
      n = 1 ์ผ ๋•Œ๋Š” 1
      n = 2 ์ผ ๋•Œ๋Š” 2
      n = 3 ์ผ ๋•Œ๋Š” 3
      n = 4 ์ผ ๋•Œ๋Š” 5

    3. (2)๋ฒˆ์„ ์ •๋ฆฌํ•˜๋ฉด ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๊ณผ ๊ฐ™๋‹ค.
      ์ ํ™”์‹์€ dp[i] = dp[i-2] + dp[i-1] ์ด ๋˜๊ฒ ๋‹ค.

    4. arr ๋ฆฌ์ŠคํŠธ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด์„ ๋งŒ๋“ค์–ด์ค€๋‹ค.

    5. vip ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ, vip๋Š” ์ œ์ž๋ฆฌ์—๋งŒ ์žˆ์–ด์•ผํ•˜๊ธฐ ๋•Œ๋ฌธ์—
      vip์˜ ์ˆ˜๋งŒํผ ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ vip ์ž๋ฆฌ ์ด์ „ ๋ฒˆํ˜ธ์—์„œ ์ด์ „ vip ๋ฒˆํ˜ธ๋ฅผ ๋บ€ arr์˜ ๊ฐ’๊นŒ์ง€์˜
      ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ณฑํ•ด์ค€๋‹ค.

    ๐Ÿ’พ ๋Š๋‚€์ 

    1. ๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ์ด ๋„ˆ๋ฌด ์–ด๋ ต๋‹ค๋Š” ๊ฒƒ์„ ๋‹ค์‹œ ํ•œ ๋ฒˆ ๋Š๊ผˆ๋‹ค.
    2. ์ ํ™”์‹์„ ๊ตฌํ˜„ํ•˜์ง€ ๋ชปํ•˜๋Š” ๋ถ€๋ถ„์—์„œ ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒƒ์ธ๊ฐ€๋ฅผ ์ƒ๊ฐํ•˜๊ณ  ์ฒ˜์Œ๋ถ€ํ„ฐ ์ฐฌ์ฐฌํžˆ ์‚ดํŽด๋ณธ ๋ฌธ์ œ์˜€๋‹ค.
    3. ์ดํ•ด๋ฅผ ํ•œ ํ›„, ๋ธ”๋กœ๊ทธ ํฌ์ŠคํŒ…์„ ํ•˜๋ฉด์„œ ๋‹ค์‹œ ๋ณต๊ธฐ๋ฅผ ํ•˜๋‹ˆ ์ฒ˜์Œ๋ณด๋‹ค ์ดํ•ด๊ฐ€ ์‰ฌ์› ๋‹ค.
    4. (3)๋ฒˆ์ฒ˜๋Ÿผ ์‰ฌ์šด ๋Š๋‚Œ์„ ๋ฐ›์•˜๋‹ค๊ณ  ํ•˜๋‚˜, ๋น„์Šทํ•œ ์œ ํ˜•์„ ํ’€ ์ˆ˜ ์žˆ์„๊นŒ? ๋ผ๋Š” ์งˆ๋ฌธ์—๋Š” ์ž์‹ ์žˆ๊ฒŒ ๋Œ€๋‹ตํ•˜์ง€๋Š” ๋ชปํ•˜๊ฒ ๋‹ค.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.