โ๋ฌธ์
https://www.acmicpc.net/problem/1010
์ฑ๋ฅ ์์ฝ
์ฝ๋1 โก๏ธ ์ธ์ด:PyPy3, ๋ฉ๋ชจ๋ฆฌ: 109240 KB, ์๊ฐ: 96 ms
์ฝ๋2 โก๏ธ ์ธ์ด:PyPy3, ๋ฉ๋ชจ๋ฆฌ: 109240 KB, ์๊ฐ: 96 ms
์ฝ๋1 โก๏ธ ์ธ์ด:Python3, ๋ฉ๋ชจ๋ฆฌ: 31120 KB, ์๊ฐ: 32 ms
์ฝ๋2 โก๏ธ ์ธ์ด:Python3, ๋ฉ๋ชจ๋ฆฌ: 31120 KB, ์๊ฐ: 32 ms
๋ฌธ์ ์ค๋ช
์ฌ์์ด๋ ํ ๋์์ ์์ฅ์ด ๋์๋ค. ์ด ๋์์๋ ๋์๋ฅผ ๋์ชฝ๊ณผ ์์ชฝ์ผ๋ก ๋๋๋ ํฐ ์ผ์ง์ ๋ชจ์์ ๊ฐ์ด ํ๋ฅด๊ณ ์๋ค. ํ์ง๋ง ์ฌ์์ด๋ ๋ค๋ฆฌ๊ฐ ์์ด์ ์๋ฏผ๋ค์ด ๊ฐ์ ๊ฑด๋๋๋ฐ ํฐ ๋ถํธ์ ๊ฒช๊ณ ์์์ ์๊ณ ๋ค๋ฆฌ๋ฅผ ์ง๊ธฐ๋ก ๊ฒฐ์ฌํ์๋ค. ๊ฐ ์ฃผ๋ณ์์ ๋ค๋ฆฌ๋ฅผ ์ง๊ธฐ์ ์ ํฉํ ๊ณณ์ ์ฌ์ดํธ๋ผ๊ณ ํ๋ค. ์ฌ์์ด๋ ๊ฐ ์ฃผ๋ณ์ ๋ฉด๋ฐํ ์กฐ์ฌํด ๋ณธ ๊ฒฐ๊ณผ ๊ฐ์ ์์ชฝ์๋ N๊ฐ์ ์ฌ์ดํธ๊ฐ ์๊ณ ๋์ชฝ์๋ M๊ฐ์ ์ฌ์ดํธ๊ฐ ์๋ค๋ ๊ฒ์ ์์๋ค. (N ≤ M)
์ฌ์์ด๋ ์์ชฝ์ ์ฌ์ดํธ์ ๋์ชฝ์ ์ฌ์ดํธ๋ฅผ ๋ค๋ฆฌ๋ก ์ฐ๊ฒฐํ๋ ค๊ณ ํ๋ค. (์ด๋ ํ ์ฌ์ดํธ์๋ ์ต๋ ํ ๊ฐ์ ๋ค๋ฆฌ๋ง ์ฐ๊ฒฐ๋ ์ ์๋ค.) ์ฌ์์ด๋ ๋ค๋ฆฌ๋ฅผ ์ต๋ํ ๋ง์ด ์ง์ผ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์ ์์ชฝ์ ์ฌ์ดํธ ๊ฐ์๋งํผ (N๊ฐ) ๋ค๋ฆฌ๋ฅผ ์ง์ผ๋ ค๊ณ ํ๋ค. ๋ค๋ฆฌ๋ผ๋ฆฌ๋ ์๋ก ๊ฒน์ณ์ง ์ ์๋ค๊ณ ํ ๋ ๋ค๋ฆฌ๋ฅผ ์ง์ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ๋ผ.
โ๐ปํ์ด
DP ๋ฌธ์ ๋ก ๊ฐ๋จํ๊ฒ ํ ์ ์๋ ๋ฌธ์ ์ด๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฌธ์ ๋ฅผ ์ฝ์ผ๋ฉด ๋ฐ๋ก ์กฐํฉ์ด๋ผ๋ ๊ฒ์ ์ ๊ฒ์ด๋ค.
๐ป์ฝ๋
import sys
input = sys.stdin.readline
ts = int(input())
res = 0
for _ in range(ts):
n, m = map(int, input().split())
dp = [0] * (m+1)
dp[0] = 1
dp[1] = m
for i in range(2, n+1):
dp[i] = dp[i - 1]*(m-i+1)//i
print(dp[n])
import sys
input = sys.stdin.readline
ts = int(input())
res = 0
for _ in range(ts):
n, m = map(int, input().split())
dp = [0] * (m+1)
dp[0] = 1
dp[1] = m
for i in range(2, (m+1)//2):
dp[i] = dp[i - 1]*(m-i+1)//i
if n > m//2:
print(dp[m-n])
else:
print(dp[n])
๐ํ๊ธฐ
์ฒ์์ ์๊ฐ ์ค์ผ ์๊ฐ์ผ๋ก m/2์ธ ๋ถ๋ถ๊น์ง๋ง for๋ฌธ์ ๋๋๋ก ์ค์ ํด์ผ์ง ํด๋๊ณ ํ๋ ธ๋ค. ๊ทธ๋์ ์ด๋ ๊ฒ ํ๋ฉด ์ ๋๋ ๊ฑด๊ฐํ๊ณ n๊น์ง ๋ค ๋๋ ๊ฑธ๋ก ๋ฐ๊ฟจ๋ค๊ฐ ๋ด๊ฐ for๋ฌธ ๋ฒ์๋ฅผ ์๋ชป ์ด ๊ฑธ ๊นจ๋ซ๊ณ ๋ค์ m/2๊น์ง ๋๋ฆฌ๋ ๊ฒ์ผ๋ก ํด์ ํ์๋ค.
๊ทธ๋ฆฌ๊ณ ์ ์ ์ด๋์ PyPy3๋ก ํ๋ ๊ฒ ์๊ฐ์ด๋ ๋ฉ๋ชจ๋ฆฌ ์ ๊ฒ ๋ ๋ค๊ณ ํ๋ ๊ฒ ๊ฐ์๋ฐ Python3๋ก ํ๋ ๊ฒ ๋ ๋น ๋ฅธ ๊ฒ ๊ฐ๋ค. ๋ด๊ฐ ์๋ชป ์๊ณ ์๋๊ฑด๊ฐ...? ๊ทธ๋ฆฌ๊ณ ์ ์ถํ ๋๋ง๋ค ์๊ฐ๋ ๋ฌ๋ผ์ง๋ค. ์ฒ์ ๋ธ ๊ฒ๋ณด๋ค ๋๋ ค์ง๊ธฐ๋ ํ๊ณ ๋นจ๋ผ์ง๊ธฐ๋ ํ๊ณ ๋ญ์ง..?
'Coding Test > Algorithms' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Baekjoon] 1449. ์๋ฆฌ๊ณต ํญ์น (0) | 2024.12.21 |
---|---|
[Baekjoon] 11399. ATM/Python - Silver4 (2) | 2024.12.20 |
[Baekjoon] 1931.ํ์์ค ๋ฐฐ์ /Python - Silver1 (1) | 2024.11.28 |
[Baekjoon] 1541.์์ด๋ฒ๋ฆฐ ๊ดํธ/Python - Silver2 (0) | 2024.11.27 |
[ํ๋ก๊ทธ๋๋จธ์ค] N์ผ๋ก ํํ/Python - Lv.3 (1) | 2024.11.26 |