본문 바로가기
알고리즘/Class 3

백준 BOJ 1676번

by edvedv 2022. 8. 19.


접근 방법

 

처음에 단순하게 팩토리얼 계산하고 charAt() 메소드로 비교해서 풀었는데 자료형의 한계로 실패했다.

 

다시 생각해보니 뒷자리에 0이 나오는 경우는 소인수분해해서 2 x 5 가 있을 때다. 이를 활용하면 쉽게 풀 수 있었다.

출처 : https://st-lab.tistory.com/165

실제로 팩토리얼 값을 나열한 사진. 5의 배수마다 0의 개수가 증가한다.

 

N의 5의 개수에 따라 count값을 더해주면 될 것이다.


코드

import java.util.*;
 
public class Main {
 
	public static void main(String[] args) {
		Scanner in = new Scanner(System.in);
 
		int N = in.nextInt();
		int count = 0;
 
		while (N >= 5) {
			count += N / 5;
			N /= 5;
		}
		System.out.println(count);
	}
 
}

'알고리즘 > Class 3' 카테고리의 다른 글

백준 BOJ 1764번  (0) 2022.08.19
백준 BOJ 1697번  (0) 2022.08.19
백준 BOJ 1620번  (0) 2022.08.18
백준 BOJ 1541번  (0) 2022.08.18
백준 BOJ 1463번  (0) 2022.08.16

댓글