ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

10422๋ฒˆ: ๊ด„ํ˜ธ

‘(‘, ‘)’ ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ ํ•œ๋‹ค. ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ž€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ •์˜๋œ๋‹ค. ()๋Š” ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋‹ค. S๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด, (S)๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ๊ด„ํ˜ธ์˜ ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์งˆ ๋•Œ, ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ์ธ์ง€ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด ๋ฌธ์ œ๋Š” `DP`๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ์ง€๋งŒ, ์นดํƒˆ๋ž‘ ์ˆ˜๋กœ๋„ ํ’€ ์ˆ˜ ์žˆ๋‹ค. ์นดํƒˆ๋ž‘ ์ˆ˜๋Š” ์ด์ง„ํŠธ๋ฆฌ์˜ ์ˆ˜๋ฅผ ์…€ ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ์ˆ˜์—ด์ด๋‹ค. ์นดํƒˆ๋ž‘ ์ˆ˜๋ฅผ ํŒŒ์ด์ฌ ์ฝ”๋“œ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด `factorial(2 * num) // (factorial(num) * factorial(num + 1))`์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from math import factorial
from sys import stdin


def catalan(num):
    return factorial(2 * num) // (factorial(num) * factorial(num + 1))


if __name__ == '__main__':
    t = int(stdin.readline())

    for _ in range(t):
        n = int(stdin.readline())

        if n % 2 != 0:
            print(0)
            continue

        print(catalan(n // 2) % 1000000007)
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€