[ ๋ฌธ์ ๋งํฌ ]
https://www.acmicpc.net/problem/1676
๐ฉ ์กฐ๊ฑด
- 0 ≤ N ≤ 500 ์ธ N์ด ์ฃผ์ด์ง
- N!์์ ๋ค์์๋ถํฐ ์ฒ์ 0์ด ์๋ ์ซ์๊ฐ ๋์ฌ ๋๊น์ง 0์ ๊ฐ์๋ฅผ ๊ตฌํด๋ผ
๐ฉ ์ ๊ทผ
N!๋ฅผ ๊ตฌํด๋๊ฐ๋ ๊ณผ์ ์์ ๋์ค๋ ์์ 0์ด ์๋ ๋ง์ง๋ง ์๋ฆฌ๋ง ๋ณด๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ค.
๋ง์ฝ ๋งจ ๋ง์ง๋ง ์๋ฆฌ๊ฐ 0์ด ๋๋ค๋ฉด, ๊ทธ ์๋ฆฌ๋ ํญ์ 0์ผ ๊ฒ์ด๊ณ , ๊ทธ๋ผ answer++ ํ ๊ณ ๋ คํ ๋ง์ง๋ง ์๋ฆฌ๋ฅผ ์์ผ๋ก ํ ์นธ ์ฎ๊ธฐ๋ฉด ๋๋ค๊ณ ์๊ฐํ๋ค.
๊ทผ๋ฐ ์ด๋ ๊ฒ ๊ตฌํํ๋๋ ๋ง๋ ๊ฒ ๊ฐ์๋ฐ ํ๋ ธ์ต๋๋ค๊ฐ ๋์์ ๋ฐ๋ก๋ฅผ ์ฐพ์๋ดค๋๋, ์๋ ์ผ์ด์ค์์ ๊ฒฐ๊ณผ๊ฐ ๋ฌ๋๋ค.
์ ๋ ฅ > 25
์ถ๋ ฅ > 5
์ ๋ต > 6
๐ฉ ์ํ์ฐฉ์ค
๊ฒฐ๋ก ๋จผ์ ๋งํ์๋ฉด, ๋งจ ๋ท์๋ฆฌ๋ง ๊ด๋ฆฌํ๋ฉด ์ ๋๋ค. ์ด๋ ๊ฒ ์๊ฐํ ์ฌ๋๋ค์ด ๊ฝค ๋ง๋๋ณด๋ค..ใ
https://www.acmicpc.net/board/view/141202
์ฌ๋ฐ๋ฅธ ์ ๊ทผ ๋ฐฉ๋ฒ์ ์๋์ ๊ฐ๋ค.
1. 0์ด ๋์ด๋๋ ์๊ฐ์, 10์ด ๊ณฑํด์ง๋ ์๊ฐ์ด๋ค.
2. ๋ฐ๋ผ์ ์์ธ์๋ถํด ์ 5์ ๊ฐ์๋ฅผ ์ฐพ๋ ๋ฌธ์ ์ด๋ค. (2์ 5๋ฅผ ์ฐพ๋๋ค๋ ๋ง์ด ๋ ์ ํํ์ง๋ง, 2์ 5๊ฐ ์ง์ธ๋ฐ 5๊ฐ ๋ ์ ๊ฒ ๋ฑ์ฅํ๋ฏ๋ก 5์ ๊ฐ์๋ง ์ธ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ด๋ค)
3. ์ด๋ฅผ ๊ตฌํํ๊ธฐ ์ํด, N์ 5๋ก ๋๋ ๋ชซ(=5์ ๋ฐฐ์ ๊ฐ์)์ ๊ตฌํ๋ค. ๊ทธ๋ฆฌ๊ณ ์ ๊ณฑ์๋ฅผ ์๊ฐํด์ค์ผ ํ๋ฏ๋ก, while๋ฌธ์ ํตํด ๋ฐ๋ณตํ๋ค.
๐ป ์ฝ๋ (Python)
N=int(input())
answer=0
while N>1:
answer+=N//5
N=N//5
print(answer)
+ ์ญ์ ํ์ด์ฌ..
ํจ์จ์ ๋จ์ด์ง์ง๋ง ๊ฐ์ฉ๋ ํ์ด๋ฅผ ๋ฐ๊ฒฌํ๋ค.. ์ญ์ ํ์ด์ฌ....
math.factorial์ ํตํด n ํฉํ ๋ฆฌ์ผ์ ๊ณ์ฐํ ๋ค, str๋ก ๋ฐ๊พธ๊ณ ๋ค์ง์ด์ค๋ค.
๊ทธ ํ 0์ด ๋๋ ๋๊น์ง ๊ฐ์๋ฅผ ์ธ์ค๋ค..
์๊ฐ์ด๊ณผ๊ฐ ์ ๋จ๋๊ฒ ์ ๊ธฐํ๋ค
from math import factorial
n = int(input())
cnt = 0
for x in str(factorial(n))[::-1]:
if x != '0':
break
cnt += 1
print(cnt)
'๐ป Algorithms > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 11286 ์ ๋๊ฐ ํ - ์ฐ์ ์์ ํ, ํ (2) | 2024.10.04 |
---|---|
[๋ฐฑ์ค] 1929 ์์ ๊ตฌํ๊ธฐ - ์๋ผํ ์คํ ๋ค์ค์ ์ฒด (0) | 2024.09.15 |
[๋ฐฑ์ค] 12865 ํ๋ฒํ ๋ฐฐ๋ญ - ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2024.09.01 |
[๋ฐฑ์ค] 10844 ์ฌ์ด ๊ณ๋จ ์ - ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2024.09.01 |
[๋ฐฑ์ค] 11727 2xn ํ์ผ๋ง2 - ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ (0) | 2024.08.31 |