코딩 테스트/백준

[백준] 2577번: 숫자의 개수 (JAVA, 자바)

Nirsa 2022. 3. 15. 23:51
반응형
2577번: 숫자의 개수 (JAVA, 자바)

이번 문제는 어쩌다보니 완전히 하드코딩으로 풀어 버렸습니다....

이게 맞나 싶은 코드지만 우연히 알게된 chars, filter, count로 해보니 덜컥 되어 버렸습니다. chars()는 String의 문자들을 스트림으로 만들어 주고, 필터를 통해 문자 '0'을 새로운 배열로 반환 후 count를 통해 개수를 새어 줍니다.

이렇게 0~9를 반복하여 하나씩 출력하면 String 문자열의 문자를 하나하나 확인 후 카운팅할 수 있습니다.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int sum = (sc.nextInt() * sc.nextInt() * sc.nextInt());
		String stringSum = Integer.toString(sum);
		
		System.out.println(stringSum.chars().filter(ch -> ch == '0').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '1').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '2').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '3').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '4').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '5').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '6').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '7').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '8').count());
		System.out.println(stringSum.chars().filter(ch -> ch == '9').count());
	}
}
반응형