์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ/BOJ_Java

[BOJ/Step5] 2577 : ์ˆซ์ž์˜ ๊ฐœ์ˆ˜ (JAVA)

NaNaRin๐Ÿ™ƒ 2021. 1. 9. 16:07

www.acmicpc.net/problem/2577

 

2577๋ฒˆ: ์ˆซ์ž์˜ ๊ฐœ์ˆ˜

์ฒซ์งธ ์ค„์— A, ๋‘˜์งธ ์ค„์— B, ์…‹์งธ ์ค„์— C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A, B, C๋Š” ๋ชจ๋‘ 100๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๊ณ , 1,000๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

www.acmicpc.net


๋ฌธ์ œ

์„ธ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜ A, B, C๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ A×B×C๋ฅผ ๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ์— 0๋ถ€ํ„ฐ 9๊นŒ์ง€ ๊ฐ๊ฐ์˜ ์ˆซ์ž๊ฐ€ ๋ช‡ ๋ฒˆ์”ฉ ์“ฐ์˜€๋Š”์ง€๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์˜ˆ๋ฅผ ๋“ค์–ด A = 150, B = 266, C = 427 ์ด๋ผ๋ฉด 

A × B × C = 150 × 266 × 427 = 17037300 ์ด ๋˜๊ณ , 

๊ณ„์‚ฐํ•œ ๊ฒฐ๊ณผ 17037300 ์—๋Š” 0์ด 3๋ฒˆ, 1์ด 1๋ฒˆ, 3์ด 2๋ฒˆ, 7์ด 2๋ฒˆ ์“ฐ์˜€๋‹ค.

 

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— A, ๋‘˜์งธ ์ค„์— B, ์…‹์งธ ์ค„์— C๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. A, B, C๋Š” ๋ชจ๋‘ 100๋ณด๋‹ค ๊ฐ™๊ฑฐ๋‚˜ ํฌ๊ณ , 1,000๋ณด๋‹ค ์ž‘์€ ์ž์—ฐ์ˆ˜์ด๋‹ค.

 

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” A×B×C์˜ ๊ฒฐ๊ณผ์— 0 ์ด ๋ช‡ ๋ฒˆ ์“ฐ์˜€๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ ์—ด ๋ฒˆ์งธ ์ค„๊นŒ์ง€ A×B×C์˜ ๊ฒฐ๊ณผ์— 1๋ถ€ํ„ฐ 9๊นŒ์ง€์˜ ์ˆซ์ž๊ฐ€ ๊ฐ๊ฐ ๋ช‡ ๋ฒˆ ์“ฐ์˜€๋Š”์ง€ ์ฐจ๋ก€๋กœ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

 

์˜ˆ์ œ ์ž…๋ ฅ

150

266

427

 

์˜ˆ์ œ ์ถœ๋ ฅ

3

1

0

2

0

0

0

2

0

0


ํ’€์ด

1. ์„ธ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๊ทธ ๊ณฑ์„ num์— ์ €์žฅ

2. ๊ฐ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์ €์žฅํ•  int[10] ๋ฐฐ์—ด์„ ์„ ์–ธ, 0์œผ๋กœ ์ดˆ๊ธฐํ™”

3. num์„ 10์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€ (= ์ผ์˜ ์ž๋ฆฌ ์ˆ˜)๋ฅผ switch๋ฌธ์„ ์ด์šฉํ•ด ๊ตฌ๋ณ„ํ•˜๊ณ  ๊ฐ ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์ฆ๊ฐ€์‹œํ‚จ๋‹ค.

4. num์„ 10์œผ๋กœ ๋‚˜๋ˆˆ ๊ฐ’์ด 0์ด๋ผ๋ฉด (= num์ด ํ•œ ์ž๋ฆฌ ์ˆ˜) while๋ฌธ์„ ํƒˆ์ถœํ•œ๋‹ค.

5. num์„ 10์œผ๋กœ ๋‚˜๋ˆˆ ํ›„ (= ์ผ์˜ ์ž๋ฆฌ ์ˆ˜๋ฅผ ๋–ผ์–ด๋ƒ„) 3๋ฒˆ์œผ๋กœ ๋‹ค์‹œ ๋Œ์•„๊ฐ„๋‹ค.

 

import java.util.Scanner;

public class B2577 {

	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		
		int num = a * b * c;		
		int[] count = {0,0,0,0,0,0,0,0,0,0};
		
		while(true) {
			switch(num % 10) {
				case 0: count[0]++; break;
				case 1: count[1]++; break;
				case 2: count[2]++; break;
				case 3: count[3]++; break;
				case 4: count[4]++; break;
				case 5: count[5]++; break;
				case 6: count[6]++; break;
				case 7: count[7]++; break;
				case 8: count[8]++; break;
				case 9: count[9]++; break;
			}
			if(num / 10 == 0) {
				break;
			}
			num /= 10;
		}
		
		for(int i = 0; i < 10; i++) {
			System.out.println(count[i]);
		}
	}
}