728x90
문제 출처: https://www.acmicpc.net/problem/1676
1676번: 팩토리얼 0의 개수
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
www.acmicpc.net
문제
N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.
입력
첫째 줄에 N이 주어진다. (0 ≤ N ≤ 500)
출력
첫째 줄에 구한 0의 개수를 출력한다.
예제 입력 1
10
예제 출력 1
2
예제 입력 2
3
예제 출력 2
0
정답
N = int(input())
tmp = 1
answer= 0
if N < 5:
print(answer)
else:
for i in range(2, N+1):
tmp*=i
tmp = str(tmp)
for i in tmp[::-1]:
if int(i) == 0:
answer +=1
else:
print(answer)
break
N으로 숫자를 입력해준 후 5보다 작을경우 맨 뒤에 0이 나올 수 없기 때문에 if문으로 5보다 작을 경우를 0으로 출력되도록 세팅을 합니다.
else문에서는 계산을 한 후에 string타입으로 변경하여 [::-1]으로 for문을 통해 0의 갯수를 찾고 0이 아닐 경우 answer을 출력해주고 반복문을 중단합니다.
처음에는 tmp를 reverse하려고 했는데 문자열이라서 안 되더라고요...
배열만 reverse가 된다는 것을 오늘 알고갑니다.
728x90
'코딩 > 백준' 카테고리의 다른 글
[백준/파이썬/수학] 1476번 날짜 계산 코딩테스트 연습풀이 실버5 (0) | 2022.02.22 |
---|---|
[백준/파이썬/수학] 1759번 암호 만들기 코딩테스트 연습풀이 골드5 (0) | 2022.02.21 |
[백준/파이썬/수학] 6603번 로또 코딩테스트 연습풀이 실버2 (0) | 2022.02.19 |
[백준/파이썬/수학] 2167번 초콜릿 자르기 코딩테스트 연습풀이 브론즈3 (0) | 2022.02.19 |
[백준/파이썬/수학] 1037번 약수 코딩테스트 연습풀이 실버5 (0) | 2022.02.18 |