๋ฌธ์
์ธ ๊ฐ์ ์์ฐ์ 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]);
}
}
}