나누어 떨어지는 숫자 배열 Level 1

2018. 5. 5. 15:10·프로그래밍/알고리즘(자바)

https://programmers.co.kr/learn/challenge_codes/89

나누어 떨어지는 숫자 배열 Level 1

roeuihyun 이 대단한 분이 한줄 코딩을 하셨다.


...

  return Arrays.stream(array).filter(factor -> factor % divisor == 0).toArray();

...


처음 보는 자바 문법이 나왔다. stream? filter?

그래서 하나하나 알아보았다.

stream ?

https://docs.oracle.com/javase/8/docs/api/java/util/stream/Stream.html

api를 찾아보았는데 stream은 순차, 병렬 집합 연산을 지원하는 시퀸스라고 한다. 

단순히 보자면 이 stream을 통해 연산을 쉽게 할 수 있다는 것인데 이 때문에 한 줄 코딩이 가능 한 것이다.

filter 는 괄호안의 내용으로 필터링을 하겠다고 이해하면 편할 것이다.

factor의 요소들을 ( factor % divisor ==0 ) 에 맞는 것들만 필터링 하는 것이다. 

여기서 factor는 배열의 각 원소를 순차적으로 불러 온 다음 stream을 toArray()메소드를 통해 다시 오브젝트 array 를 반환하여 정답을 호출할 수 있었다.

이 람다식을 이용한 간단한 코드가 있다.

다음 두 코딩은 같은 내용을 출력한다.

for (int i = 0; i < 10; i++) {
    System.out.println(i);
}

IntStream.range(0, 10).forEach((int value) -> System.out.println(value));


Stream을 통해 한줄 코딩이 쉽게 가능한 것을 알 수 있다.


'프로그래밍 > 알고리즘(자바)' 카테고리의 다른 글

평균구하기 Level 1 : For each문  (0) 2018.05.06
문자열 내림차순으로 배치하기 Level 1 #Collections,join,sort,asList,reverse  (0) 2018.05.06
짝수와 홀수 Level 1  (0) 2018.05.05
행렬의 덧셈 Level 1  (0) 2018.05.05
서울에서김서방찾기 Level 1  (0) 2018.05.05
'프로그래밍/알고리즘(자바)' 카테고리의 다른 글
  • 문자열 내림차순으로 배치하기 Level 1 #Collections,join,sort,asList,reverse
  • 짝수와 홀수 Level 1
  • 행렬의 덧셈 Level 1
  • 서울에서김서방찾기 Level 1
블루풀
블루풀
  • 블루풀
    [ IT] Be Dreamer
    블루풀
  • 전체
    오늘
    어제
    • 분류 전체보기 (35)
      • 프로그래밍 (33)
        • ChatGPT Q&A (0)
        • 안드로이드 스튜디오 (1)
        • 알고리즘(자바) (23)
        • GitHub (0)
        • Front-end (2)
        • Back-end (6)
        • 개발자 Basic English (1)
      • 취업정보 (0)
      • 일상 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    여행
    ListView
    emmet
    admin
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
블루풀
나누어 떨어지는 숫자 배열 Level 1
상단으로

티스토리툴바