반응형
🔺 문제
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
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 7568번: 덩치 (0) | 2023.06.30 |
---|---|
[백준/JAVA] 2231번: 분해합 (0) | 2023.06.30 |
[백준/JAVA] 2869번: 달팽이는 올라가고 싶다 (0) | 2023.06.29 |
[백준/JAVA] 1654번: 랜선 자르기 (0) | 2023.06.29 |
[백준/JAVA] 11866번: 요세푸스 문제 0 (0) | 2023.06.28 |