일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Algorithm
- 알고리즘
- Javascript
- VIM
- 다이나믹 프로그래밍
- 동적 계획법
- 자바
- 프로그래머스
- LeetCode
- Redux
- Data Structure
- frontend
- 안드로이드
- network
- TypeScript
- git
- 그레이들
- db
- CS
- Graph
- Python
- DP
- 리트코드
- DFS
- java
- 백준
- vscode
- Database
- react
- BFS
Archives
- Today
- Total
늘 겸손하게
백준 1676 ( Java ) - 팩토리얼 0의 개수 본문
팩토리얼 0의 개수
문제 풀이
처음 떠오르는 풀이법은 N!을 직접 구해서 뒤에서부터 0이 아닌 숫자가 나올때까지 0의 개수를 구하는 방법이지만
N 이 조금만 커져도 시간 제한에 걸리게된다. 그러므로 다른 풀이법을 생각해야한다.
팩토리얼 숫자에서 0이 증가하는 경우를 생각해보자. 2 * 5 가 포함된만큼 0이 증가하는것을 알 수 있다.
어느 경우에서든 2보다 5가 더 많으므로 n 이하의 숫자들중에서 5 , 25 ,125가 포함된 갯수들을 구하면된다.
n <= 500 이므로 125 까지만 찾으면된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
import java.util.Scanner;
public class Main {
public static void main(String []args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int count = 0;
while (n >= 5) {
count += n / 5;
n /= 5;
}
System.out.println(count);
}
}
|
cs |
'코딩 문제 > 백준' 카테고리의 다른 글
백준 2740 ( C++ ) (0) | 2021.07.16 |
---|---|
문제 1780 (C++) - 종이의 개수 (0) | 2021.07.14 |
문제 9375 (Java) - 정수, 조합론 문제 (0) | 2021.07.10 |
문제 1541 ( Java ) - 잃어버린 괄호 (0) | 2021.07.04 |
문제 11399 ( Java ) - ATM 문제 (0) | 2021.07.04 |