일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
Tags
- 전국 대학생 프로그래밍 대회 동아리 연합
- 코딩테스트실력진단
- newbie programming contest
- 사내자격증
- 2023
- 삼성전자 코딩테스트
- 백준
- 서울대학교
- 알고리즘
- 프로그래밍 경시대회
- Python
- 알고리즘 특강
- 코딩트리조별과제
- 구름톤 챌린지
- 삼성전자
- 구현
- certi
- 인하대학교
- 파이썬
- B형
- 2017
- iucpc
- 알고리즘특강
- 코드트리
- agcu컵
- 파일 생성 불가
- 코딩테스트
- 선린고등학교
- ICPC
- PRO
Archives
- Today
- Total
니노니나니
[백준/3474번] 교수가 된 현우 - S3/Python 본문
https://www.acmicpc.net/problem/3474
문제
알고리즘의 킹갓제너럴엠퍼러마제스티충무공알고리즘마스터 현우가 교수로 취임하였다!
그러나 학생들에게 크나큰 기대를 품고 첫 수업에 들어갔던 현우는 아무도 외판원 순회 문제(Traveling Salesman Problem, TSP)를 풀지 못하는 것을 보고 낙심하였다.
그 와중에 학생 남규는 TSP를 완전탐색으로 풀려고 하였고, 현우는 그걸 보고 경악을 금치 못한다. 왜냐면 TSP를 완전탐색으로 풀려면 O(N!)의 시간이 소모되는데, 이는 경악을 금치 못할 시간이기 때문이다.
그러나 남규는 O(N!)이 왜 큰지도 잘 모른다. 그래서 현우는 더더욱 경악을 금치 못하고, N!이 얼마나 큰지 대략적으로나마 알려주기 위해, 자연수 N이 주어지면 N!의 오른쪽 끝에 있는 0의 개수를 알려주기로 하였다.
그러나 현우는 경악을 금치 못하여 지금 코딩을 할 수 없는 상황이다. 여러분이 현우를 대신하여 프로그램을 작성하시오.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1 <= N <= 1000000000).
풀이
t = int(input())
for _ in range(t):
n = int(input())
count, i = 0, 5
while i <= n:
count += n //i
i *= 5
print(count)
해결방법
오른쪽 끝의 0이 존재하기 위해서는 10의 배수여야 하기 때문에 10을 구성하는 2와 5로 나누면서 10을 갯수를 세면되는 문제.
'알고리즘 > 백준' 카테고리의 다른 글
[백준/12907번] 동물원 - G5/Python (1) | 2024.08.04 |
---|---|
[백준/31672번] 특별한 케이크 (easy) - S3/Python (0) | 2024.08.03 |
[백준/20114번] 미아 노트 - S5/Python (1) | 2024.08.01 |
[백준/28702번] FizzBuzz - B1/Python (0) | 2024.07.31 |
[백준/30802번] 웰컴 키트 - B3/Python (1) | 2024.07.31 |