반응형
1.
BufferedReader 을 쓰는 방식이다.
그리고 BufferedReader 는 문자열로 반환되니 String을 Int 형으로 변환해주어야 한다.
String 에서 Int 로 변환하는 메소드는 Integer.parseInt() 다.
2.
이 방법은 첫 번째 방법에 비해 알고리즘상 시간복잡도가 O(N) 이라 훨씬 수행속도가 짧다.
또한 BufferedReader 자체가 Scanner 에 비해 우월한 성능을 지니고 있어 훨씬 좋은 performance 를 보여준다.
알고리즘 방식은 다음과 같다.
먼저 0부터 9까지 체크할 길이 10의 int 배열을 생성한다. (기본 int배열 초기값은 모두 0이다.)
그리고 val 에다가 br.readLine() 으로 읽은 값을 곱해서 저장한다.
그리고 String str 에다가 val 의 Int 형을 String 형으로 변환해준 뒤 for문을 통해 해당 문자열의 문자 값 - 48 (또는 -'0')을 추출해내 int 배열의 index 값을 1 증가시킨다.
마지막으로 배열 원소에 저장된 모든 원소를 출력한다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int[] arr = new int[10];
int val = Integer.parseInt(br.readLine()) * Integer.parseInt(br.readLine()) * Integer.parseInt(br.readLine());
String str = String.valueOf(val);
for (int i = 0; i < str.length(); i++) {
arr[(str.charAt(i) - 48)]++;
}
for (int v : arr) {
System.out.println(v);
}
}
}
'코딩 > BAEKJOON' 카테고리의 다른 글
[백준/BAEKJOON] 2751번 수 정렬하기2 JAVA (0) | 2021.08.14 |
---|---|
[백준/BAEKJOON] 2750번 수 정렬하기 JAVA (0) | 2021.08.14 |
[백준/BAEKJOON] 2562번 최댓값 JAVA (0) | 2021.08.14 |
[백준/BAEKJOON] 10818번 최소, 최대 JAVA (0) | 2021.08.14 |
[백준/BAEKJOON] 2739번 구구단 JAVA (0) | 2021.08.13 |