반응형
[백준] 2577번: 숫자의 개수
Java 풀이
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int a = Integer.parseInt(br.readLine());
int b = Integer.parseInt(br.readLine());
int c = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder().append(a * b * c);
int[] cnts = new int[10];
for (int i = 0; i < sb.length(); ++i) {
++cnts[(sb.charAt(i) - '0')];
}
for (int cnt : cnts) {
bw.write(cnt + "\n");
}
br.close();
bw.flush();
bw.close();
}
}
전혀 어렵지 않은 문제다. 근데 인덱스 값으로 활용하는 걸 자꾸 까먹어서 남긴다. 이 정도면 바보인가?
StringBuilder는 for each문 사용이 불가능하기 때문에 일반 for문을 사용했다.
charAt() 메서드로 가져온 char 타입 값을 int 타입으로 변경하기 위해 - '0'을 해준다.
0부터 9까지의 숫자들의 개수를 세는 것이기 때문에, 계산해서 나온 숫자들이 배열의 크기가 10인 cnts 배열의 인덱스 값으로 넣으면 된다.
Python 3 풀이
a = int(input())
b = int(input())
c = int(input())
num = str(a * b * c)
for i in range(10):
print(num.count(str(i)))
반응형