세 개의 자연수 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의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A × B × C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례로 한 줄에 하나씩 출력한다.
package com.company;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class test18 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int result = 1;
for(int i=0; i<3; i++){
result *= Integer.parseInt(br.readLine());
}
//System.out.println(result);// 세개 곱한 값
// int to String
String intToString = String.valueOf(result);
Map<Integer, Integer> hashMap = new HashMap<Integer, Integer>();
for(int i=0; i<10; i++){
hashMap.put(i,0);//초기화
}
for(int i=0; i<intToString.length(); i++){
int temp = intToString.charAt(i)- '0';
hashMap.put(temp, hashMap.get(temp)+1);// 아스키코드로 검색 후 값+1 대체
}
for(Integer i : hashMap.values())
System.out.println(i);
}//main
}
포인트
treeMap에 put은 값을 대체한다.
charAt은 String에만 적용이 된다.
String.valueOf(result); // 문자로 형변환
treeMap.values()
처음에는 treeMap으로 작성했는데. treeMap은 속도가 느려서 HashMap으로 변경하였다.
아래 코드는 배열로도 할 수 있다는걸 보고 인상 깊어서 가져왔다.
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) {
try {
process();
}
catch (Exception e) {
e.printStackTrace();
}
}
public static void process() throws Exception {
BufferedReader br = new BufferedReader(
new InputStreamReader(System.in));
long[] input = new long[3];
input[0] = Long.parseLong(br.readLine());
input[1] = Long.parseLong(br.readLine());
input[2] = Long.parseLong(br.readLine());
String result = String.valueOf(input[0] * input[1] * input[2]);
int[] count = new int[10];
for (int i = 0; i < result.length(); i++) {
count[(result.charAt(i) - '0')]++;
}
for (int i = 0; i < count.length; i++) {
System.out.println(count[i]);
}
}
}
'알고리즘 > 알고리즘' 카테고리의 다른 글
[프로그래머스][해시] 완주하지 못한 선수 (0) | 2021.09.27 |
---|---|
[백준] No Duplicates (0) | 2021.09.27 |
[백준] 평균은 넘겠지 (0) | 2021.09.27 |
[백준] 최댓값 (0) | 2021.09.25 |
[백준] 곱하기 (0) | 2021.09.25 |