ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [๋ฐฑ์ค€] 4811 ์•Œ์•ฝ with Python
    PS 2022. 3. 9. 01:02
    728x90
    ๋ฐ˜์‘ํ˜•

    ๐Ÿ“Œ BOJ 4811 ์•Œ์•ฝ

    ๐Ÿ’ก ์กฐ๊ฑด

    1. 70์„ธ ๋ฐ•์ข…์ˆ˜ ํ• ์•„๋ฒ„์ง€๋Š” ๋งค์ผ ๋งค์ผ ์•ฝ ๋ฐ˜์•Œ์„ ๋จน๋Š”๋‹ค.
      ์†๋…€ ์„ ์˜์ด๋Š” ์ข…์ˆ˜ ํ• ์•„๋ฒ„์ง€์—๊ฒŒ ์•ฝ์ด N๊ฐœ ๋‹ด๊ธด ๋ณ‘์„ ์„ ๋ฌผ๋กœ ์ฃผ์—ˆ๋‹ค.

    2. ๋‹ค์Œ ๋‚ ๋ถ€ํ„ฐ ์ข…์ˆ˜๋Š” ๋ณ‘์—์„œ ์•ฝ์„ ํ•˜๋‚˜ ๊บผ๋‚ธ๋‹ค.
      (์•ฝ์€ ํ•œ ์กฐ๊ฐ ์ „์ฒด ์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์ชผ๊ฐ  ๋ฐ˜ ์กฐ๊ฐ ์ผ ์ˆ˜๋„ ์žˆ๋‹ค) ๋ฐ˜ ์กฐ๊ฐ์ด๋ผ๋ฉด ๊ทธ ์•ฝ์„ ๋จน๊ณ ,
      ์•„๋‹ˆ๋ผ๋ฉด ๋ฐ˜์„ ์ชผ๊ฐœ์„œ ํ•œ ์กฐ๊ฐ์„ ๋จน๊ณ , ๋‹ค๋ฅธ ์กฐ๊ฐ์€ ๋‹ค์‹œ ๋ณ‘์— ๋„ฃ๋Š”๋‹ค.

    3. ์ข…์ˆ˜๋Š” ์†๋…€์—๊ฒŒ ํ•œ ์กฐ๊ฐ์„ ๊บผ๋‚ธ ๋‚ ์—๋Š” W๋ฅผ, ๋ฐ˜ ์กฐ๊ฐ์„ ๊บผ๋‚ธ ๋‚ ์—๋Š” H ๋ณด๋‚ธ๋‹ค.

    4. ์†๋…€๋Š” ํ• ์•„๋ฒ„์ง€์—๊ฒŒ ๋ฐ›์€ ๋ฌธ์ž๋ฅผ ์ข…์ด์— ๊ธฐ๋กํ•ด ๋†“๋Š”๋‹ค. ์ด 2N์ผ์ด ์ง€๋‚˜๋ฉด ๊ธธ์ด๊ฐ€ 2N์ธ ๋ฌธ์ž์—ด์ด ๋งŒ๋“ค์–ด์ง€๊ฒŒ ๋œ๋‹ค.

    5. ์ด๋•Œ, ๊ฐ€๋Šฅํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฌธ์ž์—ด์˜ ๊ฐœ์ˆ˜๋Š” ์ด ๋ช‡ ๊ฐœ์ผ๊นŒ?

    6. ์ž…๋ ฅ์€ ์ตœ๋Œ€ 1000๊ฐœ์˜ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค.
      ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๋Š” ํ•œ ์ค„์ด๋ฉฐ, ๋ณ‘์— ๋“ค์–ด์žˆ๋Š” ์•ฝ์˜ ๊ฐœ์ˆ˜ N โ‰ค 30 ๊ฐ€ ์ฃผ์–ด์ง„๋‹ค.
      ์ž…๋ ฅ์˜ ๋งˆ์ง€๋ง‰ ์ค„์—๋Š” 0์ด ํ•˜๋‚˜ ์ฃผ์–ด์ง„๋‹ค.

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

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

    from sys import stdin
    
    arr = [[0] * 31 for _ in range(31)]
    arr[0][1] = 1
    for i in range(31):
        for j in range(i, 31):
            if i == 0:
                arr[i][j] = 1
            else:
                if i == j:
                    arr[i][j] = arr[i-1][j]
                else:
                    arr[i][j] = arr[i-1][j] + arr[i][j-1]
    
    while 1:
        n = int(stdin.readline())
        if n == 0:
            break
    
        print(arr[n][n])

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

    ์˜ˆ์ œ

    6
    1
    4
    2
    3
    30
    0

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

    132
    1
    14
    2
    5
    3814986502092304

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

    1. ์•Œ์•ฝ์„ ๋จน์ง€ ์•Š์œผ๋ฉด ์ ˆ๋Œ€๋กœ ๋ฐ˜๊ฐœ์งœ๋ฆฌ๋Š” ์กด์žฌํ•  ์ˆ˜๋„ ์—†๋‹ค.

    2. ์˜จ์ „ํ•œ ์•Œ์•ฝ์„ ๋จน์œผ๋ฉด ๋ฐ˜์ชฝ์งœ๋ฆฌ ์•Œ์•ฝ์ด ์ƒ๊ธด๋‹ค.
      ์ด ๊ฒฝ์šฐ, ๋ฐ˜์ชฝ์งœ๋ฆฌ ์•Œ์•ฝ์„ ๋จน์„ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ํ•˜๋‚˜ ๋” ๋Š˜์–ด๋‚œ๋‹ค.

    3. h/w 0 1 2 3 4
      0 0 1 1 1 1
      1 1 2 3 4
      2 2 5 9
      3 5 14
      4 14

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

    1. ๋‹ค์ด๋‚˜๋ฏนํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ๋„ˆ๋ฌด ๋ชปํ•œ๋‹ค.
    2. ๋ฌธ์ œ๋ฅผ ์ดํ•ดํ•˜๊ณ , ์ดํ•ดํ•œ ๋‚ด์šฉ์„ ๋ฐ”ํƒ•์œผ๋กœ ํ’€์ด๋ฅผ ์œ ๋„ํ•˜๋Š” ๊ฒƒ์ด ์•„์˜ˆ ๋˜์ง€๋ฅผ ์•Š๋Š”๋‹ค.
    3. DP ๋ฌธ์ œ๊ฐ™๋‹ค๊ณ  ์ƒ๊ฐ์ด ๋˜๋ฉด ์ฒœ์ฒœํžˆ ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ์ƒ๊ฐ์„ ํ•ด๋ณด์ž.
    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.