본문 바로가기
백준/20001 - 25000

[백준] 21567번 : 숫자의 개수 2(JAVA)

by lms0806 2021. 7. 25.
728x90
반응형

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

 

21567번: 숫자의 개수 2

첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 1,000,000보다 작은 자연수이다.

www.acmicpc.net

풀이

3개의 수의 곱을 한 후 포함되어있는 수의 갯수를 구하는 문제이다.

범위가 곱할경우 커져 BigInteger를 사용하면 된다.

 

곱한 수를 10으로 나누면서 나머지에 해당하는 배열의 위치를 더해줘 마지막에 출력해주면된다.

 

소스코드

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

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); 

		int[] number = new int[10];
		BigInteger sum = new BigInteger(br.readLine()).multiply(new BigInteger(br.readLine())).multiply(new BigInteger(br.readLine()));
		
		while(sum.compareTo(BigInteger.ZERO) != 0) {
			number[sum.remainder(BigInteger.TEN).intValue()]++;
			sum = sum.divide(BigInteger.TEN);
		}
		
		StringBuilder sb = new StringBuilder();
		for(int n : number) {
			sb.append(n).append("\n");
		}
		System.out.print(sb);
	}
}
728x90
반응형

댓글