Coding Test
CT | 백준 2577번 숫자의 개수
이진유진
2024. 10. 21. 15:11
반응형
https://www.acmicpc.net/problem/2577
처음 알고리즘을 공부할때 당연하게도 풀어야할 배열의 가장 기초 문제를 풀어봤습니다 :)
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int multiple = 1;
for (int i = 0; i < 3; i++) {
int input = scanner.nextInt();
multiple *= input;
}
scanner.close();
// System.out.println(multiple);
List<Integer> digits = new ArrayList<>();
String numberStr = String.valueOf(multiple);
for(char c : numberStr.toCharArray()) {
digits.add(Character.getNumericValue(c)); // 각 문자를 숫자로 변환해 리스트에 추가
}
int cnt = 0;
for(int j = 0; j < 10; j++) {
for(int i = 0; i < digits.size(); i++) {
if(digits.get(i) == j) {
cnt++;
}
}
System.out.println(cnt);
cnt = 0;
}
}
}
* numberStr.toCharArray()
- 문자열을 char 배열로 변환. 그런 다음 각 자릿수를 순차적으로 처리하여 리스트에 추가.
* Character.getNumericValue(c));
- char 값을 정수형 숫자로 변환.
아래는 내 코드를 GPT에게 리팩토링을 부탁한 코드다.
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int multiple = 1;
// 3개의 입력 값을 곱함
for (int i = 0; i < 3; i++) {
multiple *= scanner.nextInt();
}
scanner.close();
// 자릿수의 등장 횟수를 저장할 배열
int[] digitCount = new int[10];
// 곱한 결과를 문자열로 변환해 자릿수별로 카운팅
String numberStr = String.valueOf(multiple);
for (char c : numberStr.toCharArray()) {
int digit = Character.getNumericValue(c);
digitCount[digit]++;
}
// 0부터 9까지의 등장 횟수를 출력
for (int count : digitCount) {
System.out.println(count);
}
}
}
이번주는 첫번째 스터디 주제인,
배열/연결리스트/스택/큐/덱 중에서 배열의 가장 기초 문제를 해결해봤습니다 :)
반응형