https://www.acmicpc.net/problem/2577
2577번: 숫자의 개수
첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 크거나 같고, 1,000보다 작은 자연수이다.
www.acmicpc.net
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int targetNum = sc.nextInt() * sc.nextInt() * sc.nextInt();
List<Integer> numbers = Stream.of(String.valueOf(targetNum).split(""))
.map(Integer::valueOf)
.collect(Collectors.toList());
IntStream.range(0, 10)
.map(n -> Collections.frequency(numbers, n))
.forEach(System.out::println);
}
}
딱히 피드백용으로 올린 문제는 아니고 람다식으로 이쁘게 작성한 것 같아 올려본다.
물론 스트림 특성상 성능은 좋지 못하지만 가독성은 최고인 것 같다.
특히 저 frequency는 내부적으로 컬렉션을 반복하니 사용 전에 성능을 고려해서 사용해야 할 것 같다.
'Java > Problem Solving' 카테고리의 다른 글
BOJ 1316번 - 그룹 단어 체커 (4) | 2022.06.19 |
---|---|
BOJ 4673번 - 셀프넘버 (0) | 2022.06.14 |
BOJ 1110번 - 더하기 사이클 (0) | 2022.06.12 |