-
프로그래머스 - 나누어 떨어지는 숫자 배열 [자바]Algorithms/- 프로그래머스 2022. 2. 2. 11:48
- 문제 링크 : 나누어 떨어지는 숫자 배열
코딩테스트 연습 - 나누어 떨어지는 숫자 배열
array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하
programmers.co.kr
정답
import java.util.*; import java.util.stream.*; class Solution { public int[] solution(int[] arr, int divisor) { List<Integer> iList = new ArrayList<>(); for(int i : arr){ if(i % divisor == 0){ iList.add(i); } } int[] a = iList.stream().sorted().mapToInt(Integer::intValue).toArray(); if(a.length == 0){ int[] b = {-1}; return b; } return a; } }
분석
- 단순 정렬과 사칙연산 문제
참고할 만한 정답
public int[] divisible(int[] array, int divisor) { //ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로 넣으세요. return Arrays.stream(array).filter(factor -> factor % divisor == 0).toArray(); }
비교 분석
- filter를 사용하면 앞에서 if문으로 수행한 내용을 동일하게 할 수 있다.
비교 분석 반영
import java.util.*; import java.util.stream.*; class Solution { public int[] solution(int[] arr, int divisor) { int[] a = Arrays.stream(arr).filter(x -> x % divisor == 0).sorted().toArray(); if(a.length == 0){ int[] b = {-1}; return b; } return a; } }
반응형