알고리즘

[boj3474/JAVA] 교수가 된 현우

IT 참다랑어 2023. 7. 20. 10:12

https://www.acmicpc.net/problem/3474

 

3474번: 교수가 된 현우

첫째 줄에 테스트 케이스의 개수 T가 주어지고, 이어서 T개의 줄에 정수 N이 주어진다(1 <= N <= 1000000000).

www.acmicpc.net

문제 풀 때 포인트는

1. 0은 항상 2와 5가 추가될 때마다 생긴다는 점

2. 2보다 5의 개수가 항상 적다는 점

이라고 생각했다.

 

그래서 5의 배수, 5의 제곱수의 배수가 해당 범위 안에 몇개가 있는지 확인하는 코드를 작성하였다.

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

	public static void main(String[] args) throws NumberFormatException, IOException {
		
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int T = Integer.parseInt(br.readLine());
		//입력되는 수, 0의 개수, 5의 제곱
		int N, cnt, i;
		
		for(int tc = 0; tc<T; tc++) {
			cnt = 0;
			i = 5;
			N = Integer.parseInt(br.readLine());
			
			while(N/i > 0) {
				cnt += N/i;
				i*=5;
			}
			
			System.out.println(cnt);
		}
	}

}

'알고리즘' 카테고리의 다른 글

[boj13335/Java] 트럭(Queue 사용법)  (0) 2023.07.24
[boj2477/Java] 참외밭  (0) 2023.07.20
[boj2607/Java] 비슷한 단어  (0) 2023.07.17
[boj6884/Java] 소수 부분 수열  (0) 2023.07.17
[boj11140/Java] LOL  (0) 2023.07.17