반응형
구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오.
ex) 8888 -> 8개수 = 4개
코딩도장 풀이 보기에서 발췌한 답안입니다
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
import java.util.stream.IntStream;
public class blog{
public static void main(String[] args) {
System.out.println(String.format(">> %d", foo()));
}
public static long foo(){
return IntStream.rangeClosed(1, 10000)
.map(x -> (int)(String.valueOf(x).chars()
.filter(ch -> ch == '8').count())).sum(); }
}
|
cs |
#5_1에서는 for문을 이용한 반복으로 8의 개수를 도출했다
위의 풀이는 JAVA8에서 지원하는 IntStream을 이용해서 풀이한 코딩이다.
IntStream를 이용해서 이전에 사용하던 for, while, do-while문 보다 짧게 풀이할 수 있다.
알게된 것
Intstream.rangeClosed(1,10000) -> 범위를 선언하는 명령문
String.valueOf( ) -> 문자열로 형변환
map(x -> x*x) -> 뒤에 따라오는 조건문에 맞춰 앞의 변수에 대입
filter(ch -> ch =='8') -> 특정 요소의 컨텐츠를 필터링
count() -> 요소 개수 반환
반응형
'코딩공부 > JAVA' 카테고리의 다른 글
JAVA #7 : 완전수 구하기, For문을 이용해서 완전수 구하기 (1) | 2022.05.25 |
---|---|
JAVA #6 : 10~1000까지 각 숫자 분해하여 곱하기의 전체 합 구하기 (1) | 2022.05.23 |
JAVA #5_1 : 구글 입사 문제; 1~10000 사이에 8의 개수를 구하시오 (0) | 2022.05.19 |
JAVA #4 : While문과 Math.random()을 이용한 UP&DOWN 게임 제작 (0) | 2022.05.18 |
JAVA #3 : Format 명령어를 이용한 숫자의 자릿수 출력하기 (0) | 2022.05.17 |