반응형
알고리즘 문제를 풀 때는 확실히 프로그램상으로 실제로 어떻게 답을 도출해낼 수 있는 지를 생각하고 이후 코드를 짜는 것이 중요함을 느낀다.
단계적인 로직을 따른다.
A, B, C가 입력되어야 하므로, 스캐너를 이용해 입력값을 받는다.
이후 A*B*C를 하는데, 이는 문제의 조건에 해당하므로, for문이나, 최종 프린트문에 들어가지 않아도 되므로
메인 함수에 작성한다.
숫자를 각각 세기 위해서는 숫자를 나눠야 하므로, 나눌 수 있는 단위인 스트링으로 형변환해준다.
형변환한 숫자를 하나씩 나눌 수 있는 함수를 사용하여 new arraylist 안에 넣어준다.
실제로 출력해야 하는 부분에 해당하는 1~9의 사용개수를 세기 위해
i = 0; i < 10까지 조건을 맞춰주고
리스트 안에 원소 개수를 세어주는 collection.frequency함수를 사용한다.
다만, 세기 위해서는 데이터타입이 일치해야 하므로, 현재 리스트 상의 데이터가 스트링이므로,
단위를 셀 수 있도록 i를 스트링으로 형변환해준다.
이후 출력해주면 정답이 나온다.
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Scanner;
public class Main {
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 D = A*B*C;
String number = String.valueOf(D);
ArrayList<String> nums = new ArrayList<>(Arrays.asList(number.split("")));
for(int i=0;i<10;i++) {
String str_i = String.valueOf(i);
int fqc = Collections.frequency(nums, str_i);
System.out.println(fqc);
}
sc.close();
}
}
반응형
'Projects > 백준 문제' 카테고리의 다른 글
백준 1546번 자바 평균 (0) | 2022.02.05 |
---|---|
백준 3052번 자바 문제 나머지값 구하기 (0) | 2022.02.05 |
백준 2562번 자바 문제 최대값의 인덱스 가져오기 (0) | 2022.02.04 |
백준 10818번 자바 문제 최소 최대값 (0) | 2022.02.02 |
백준 1110번 자바 문제 더하기 사이클 구하기 (0) | 2022.02.02 |