코테/백준

[백준/JAVA] 1676번: 팩토리얼 0의 개수

imname1am 2023. 6. 29. 22:57
반응형

🔺 문제

 

1676번: 팩토리얼 0의 개수

N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

 

 

🔺 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import java.util.*;
import java.io.*;
 
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        
        int N = Integer.parseInt(br.readLine());
        int cnt = 0;
        
        while(N >= 5) {
            cnt += N / 5;
            N /= 5;
        }
        System.out.println(cnt);
    }
}
 
cs
✅ 해결 아이디어
0 개수 구하기 → 10의 배수여야 0이 생김 → 2와 5를 가질 때 0을 가짐
- 근데 2의 개수가 5의 개수보다 많으므로 5의 개수에 따라 0의 개수가 판정된다.
따라서 5의 배수만 고려해도 oK!

 

💥 유의사항

• 5의 n제곱에 따라 카운트 값 추가 ⇨ 반복문 통해 5로 나누면서 누적합 계산

 

 


🔺 다른 풀이들

- 소인수 분해 하며 2와 5의 개수를 파악하고, 두 가지 개수 중 작은 값을 출력하셨다.

 

[BOJ] 백준 1676 팩토리얼 0의 개수 (Java)

출처: https://www.acmicpc.net/problem/1676 N!에서 뒷자리부터 0의 갯수를 출력하는 문제 (0! = 1) (단, '0'이 아닌 숫자가 나오는 지점까지의 갯수) 0 ≤ N ≤ 500이므로 크지 않은 N이지만 N!는 long 타입으로 담

zoosso.tistory.com

 


💬 느낀 점

팩토리얼 반복문으로도 구해보고... 재귀로도 해보다가

이게 아닌가? 싶어서 다른 분 코드 보고 작성했다....

 

수학 머리가 안 돌아가~1~!~

 

 

1회독 2회독 3회독 4회독 5회독
V        

(참고)

 

[백준] 1676. 팩토리얼 0의 개수(java)

[백준] 1676. 팩토리얼 0의 개수(java)

velog.io

 

 

[백준] 1676번 : 팩토리얼 0의 개수 - JAVA [자바]

www.acmicpc.net/problem/1676 1676번: 팩토리얼 0의 개수 N!에서 뒤에서부터 처음 0이 아닌 숫자가 나올 때까지 0의 개수를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제 정말 정말 쉬운 문제다. 알고리

st-lab.tistory.com

 

반응형