[BOJ] 2004 ์กฐํฉ 0์ ๊ฐ์ (Python / ํ์ด์ฌ)

๐งท ๋ฌธ์
https://www.acmicpc.net/problem/2004
์กฐํฉ nCm์ ๋์๋ฆฌ 0์ ๊ฐ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค.
๐ ํ์ด
์ด ๋ฌธ์ ๋ ์๊ฐ์ด๊ณผ๋ฅผ ์ ๊ฒฝ์จ์ผ ํ๋ ๋ฌธ์ ์ด๋ค.
Step 1.
์ด ๋ฌธ์ ๋ฅผ ๋จ์ํ nCr = n! / r!(n-r)!์ ๊ณ์ฐํ ํ์ 10์ผ๋ก ๋๋ ์ ๊ณ์ฐํ๋ฉด ๋ฌธ์ ์์ ์ฃผ์ด์ง ์
๋ ฅ์ ๋ฒ์๋๋ฌธ์ ์๊ฐ์ด๊ณผ๊ฐ ๋๋ค.
Step 2.
๊ทธ๋ ๋ค๋ฉด ๋์๋ฆฌ๊ฐ 0์ด ๋์ฌ ์ ์๋ ๊ฒฝ์ฐ๋ฅผ ์๊ฐํด๋ณธ๋ค.
๋์๋ฆฌ๊ฐ 0์ด ๋๋ ค๋ฉด 2์ 5์ ๊ณฑ์ผ๋ก ์ด๋ฃจ์ด์ ธ์ผํ๋ค. ์ฆ, 2์ 5์ ์์ ๊ฐฏ์๋ฅผ ๊ตฌํ๋ฉด ๋์๋ฆฌ 0์ ๊ฐ์๋ฅผ ๊ตฌํ ์ ์๋ค.
Step 3.
๋ค์ ํ๋ฒ, 10์ด ๋ง๋ค์ด์ง๋ ค๋ฉด 2์ 5๊ฐ ์์ ์ด๋ค์ผ ํ๋ฏ๋ก 2์ ๊ฐฏ์์ 5์ ๊ฐฏ์ ์ค ๋ ์์ ๊ฒ์ ์ ํํ๋ฉด ๋๋ค.
๐ ๋์ ์ฝ๋
import sys input = sys.stdin.readline def count_two(x): cnt = 0 while x > 0: x = x // 2 cnt += x return cnt def count_five(x): cnt = 0 while x > 0: x = x // 5 cnt += x return cnt def count_zero(x, y): t = count_two(x) - count_two(y) - count_two(x-y) f = count_five(x) - count_five(y) - count_five(x-y) return min(t, f) if __name__ == "__main__": n, m = map(int, input().split()) print(count_zero(n, m))
'Algorithm > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 15990 1, 2, 3 ๋ํ๊ธฐ 5 (Python / ํ์ด์ฌ) (0) | 2021.08.01 |
---|---|
[BOJ] 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (Python / ํ์ด์ฌ) (0) | 2021.08.01 |
[BOJ] 1929 ์์ ๊ตฌํ๊ธฐ (Python / ํ์ด์ฌ) (0) | 2021.07.30 |
[BOJ] 2609 ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (Python / ํ์ด์ฌ) (0) | 2021.07.30 |
[BOJ] 1918 ํ์ ํ๊ธฐ์ (Python / ํ์ด์ฌ) (0) | 2021.07.30 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[BOJ] 15990 1, 2, 3 ๋ํ๊ธฐ 5 (Python / ํ์ด์ฌ)
[BOJ] 15990 1, 2, 3 ๋ํ๊ธฐ 5 (Python / ํ์ด์ฌ)
2021.08.01๐งท ๋ฌธ์ https://www.acmicpc.net/problem/15990 ์ ์ n์ด ์ฃผ์ด์ก์ ๋, n์ 1, 2, 3์ ํฉ์ผ๋ก ๋ํ๋ด๋ ๊ณผ์ ์์ ๊ฐ์ ์๋ฅผ ๋ ๋ฒ ์ด์ ์ฐ์ํด์ ์ฌ์ฉํ์ง ์๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๐ ํ์ด ์ด ๋ฌธ์ ๋ DP table์ 1์ฐจ์์ด ์๋ 2์ฐจ์์ผ๋ก ๊ตฌ์ฑํด์ผ ํด๊ฒฐํ ์ ์๋ค. Step 1. ๋จผ์ ๊ฐ ์ธ๋ฑ์ค์ DP table์ ๊ธธ์ด 4์ ๋ฆฌ์คํธ๋ก ๋ฐ๋๋ฐ 0๋ฒ ์ธ๋ฑ์ค์๋ n์ ๋ง๋ค ์ ์๋ ๋ฐฉ๋ฒ์ ์, 1 ~ 3๋ฒ ์ธ๋ฑ์ค์๋ ๊ฐ ์ธ๋ฑ์ค๋ก ๋๋๋ ๋ฐฉ๋ฒ์ ์๋ฅผ ๋ฃ์ด์ค๋ค. ์๋ฅผ ๋ค๋ฉด d[3]์ ๊ฒฝ์ฐ 2 + 1, 1 + 2, 3 ์ด๋ ๊ฒ ์ด 3๊ฐ์ง์ ๊ฒฝ์ฐ๋ฅผ ๊ฐ์ง๊ณ ์๊ณ 1, 2, 3์ผ๋ก ๋๋๋ ๋ฐฉ๋ฒ์ด ๊ฐ 1๊ฐ์ฉ ์กด์ฌํ๋ฏ๋ก d[3] = [3, 1, 1, 1]๋ก ์ด๊ธฐํํด์ค๋ค. ๊ฐ์ โฆ -
[BOJ] 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (Python / ํ์ด์ฌ)
[BOJ] 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (Python / ํ์ด์ฌ)
2021.08.01๐งท ๋ฌธ์ https://www.acmicpc.net/problem/11052 ์นด๋ ํฉ์ ๊ฐ๊ฒฉ์ด ์ฃผ์ด์ก์ ๋, N๊ฐ์ ์นด๋๋ฅผ ๊ตฌ๋งคํ๊ธฐ ์ํด ์ง๋ถํด์ผ ํ๋ ๊ธ์ก์ ์ต๋๊ฐ์ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๐ ํ์ด ์ด ๋ฌธ์ ๋ Bottom-Up ๋ฐฉ์์ ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ(DP)๋ฅผ ์ด์ฉํ์ฌ ํด๊ฒฐํ ์ ์๋ค. Step 1. ์ด ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ์๊ฐ์ ํด๋ณด๋ฉด n๊ฐ์ ์นด๋๋ฅผ ๊ตฌ๋งคํ๊ธฐ ์ํ ์ต๋ ๊ธ์ก d[n]์ d[n], d[1] + d[n-1], d[2] + d[n-2], โฆ. , d[j] + d[n-j]์ค ๊ฐ์ฅ ํฐ ๊ฐ๊ณผ ๊ฐ๋ค. Step 2. for๋ฌธ์ ๋๊ธฐ ์ d[i]์ ๊ฐ์ ์ ๋ ฅ์ผ๋ก ๋ฐ์ card_pack[i]๋ก ์ด๊ธฐํ ์์ผ์ค ํ์ j == 1์ j == i-1์ ๊ฐ์ผ๋ฏ๋ก j๋ i์ ์ ๋ฐ๊น์ง๋ง ๋๋๋ก ํ๋ค. Step 3. fโฆ -
[BOJ] 1929 ์์ ๊ตฌํ๊ธฐ (Python / ํ์ด์ฌ)
[BOJ] 1929 ์์ ๊ตฌํ๊ธฐ (Python / ํ์ด์ฌ)
2021.07.30๐งท ๋ฌธ์ https://www.acmicpc.net/problem/1929 M์ด์ N์ดํ์ ์์๋ฅผ ๋ชจ๋ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. ๐ ํ์ด ์ด ๋ฌธ์ ๋ '์๋ผํ ์คํ ๋ค์ค์ ์ฒด' ๋ฅผ ์ด์ฉํด ํด๊ฒฐํ ์ ์๋ค. Step 1. ์๋ผํ ์คํ ๋ค์ค์ ์ฒด๋ฅผ ์ด์ฉํด ์์๋ฅผ ํ๋ณํ๋ค. ์๋ผํ ์คํ ๋ค์ค์ ์ฒด : ์์๋ฅผ ํ๋ณํ ๋ฒ์๋งํผ ๋ฐฐ์ด์ ํ ๋นํ๊ณ ๊ทธ ์ธ๋ฑ์ค์ ํด๋น๊ฐ์ ๋ฃ์ด์ค ํ์, 2๋ถํฐ ์์ํด์ ๊ทธ ๊ฐ์ด True๋ผ๋ฉด ๊ทธ ์์ ๋ฐฐ์์ ํด๋นํ๋ ์ซ์๋ค์ ๋ชจ๋ False๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์ ๋ฐ๋ณตํด ๋๋์ ์์๋ฅผ ํ๊บผ๋ฒ์ ํ๋ณํ๋๋ฐ ์ฉ์ดํ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. ๐ ๋์ ์ฝ๋ import sys input = sys.stdin.readline def is_prime(x, y): prime_num = [True] * (y+1) for i โฆ -
[BOJ] 2609 ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (Python / ํ์ด์ฌ)
[BOJ] 2609 ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์ (Python / ํ์ด์ฌ)
2021.07.30๐งท ๋ฌธ์ https://www.acmicpc.net/problem/2609 ๋ ๊ฐ์ ์์ฐ์๋ฅผ ์ ๋ ฅ๋ฐ์ ์ต๋๊ณต์ฝ์์ ์ต์๊ณต๋ฐฐ์๋ฅผ ์ถ๋ ฅํ๋ ๋ฌธ์ ์ด๋ค. ๐ ํ์ด ์ด ๋ฌธ์ ๋ ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํด ์ต๋ ๊ณต์ฝ์์ ์ต์ ๊ณต๋ฐฐ์๋ฅผ ๊ตฌํ๋ฉด ๋๋ค. Step 1. ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ์ ์ด์ฉํด ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ค. ์ ํด๋ฆฌ๋ ํธ์ ๋ฒ : 2๊ฐ์ ์์ฐ์์ ์ต๋๊ณต์ฝ์๋ฅผ ๊ตฌํ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค. "a์ b์ ์ต๋๊ณต์ฝ์๋ a๋ฅผ b๋ก ๋๋ ๋๋จธ์ง์ b์ ์ต๋๊ณต์ฝ์์ ๊ฐ๋ค."๋ ์ x์ y๊ฐ ์์ ๋, (๋จ, x >= y) def gcd(x, y): while b > 0: a, b = b, a % b return a ๐ ๋์ ์ฝ๋ import sys input = sys.stdin.readline def GCD(a, b): while b > โฆ
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.