728x90
import java.util.Vector; import java.util.Arrays; class Solution { public Object[] solution(int[] arr, int divisor) { Vector<Integer>v = new Vector<Integer>(); for(int i=0;i<arr.length;i++) { if(arr[i]%divisor==0) { v.add(arr[i]); } } if(v.size()==0) { v.add(-1); } Object[] objs = v.toArray(); Arrays.sort(objs); return objs; } } |
고찰 : vector에서 정렬하는 부분에 대해서 오래걸렸다.
자바 문법이 아직 미숙한것 같다.
Object[] objs = v.toArray();
Arrays.sort(objs);
오름차순 정렬 기억하자!!
그리고 테스트 케이스 6번이 오래걸렸다. 아마 vector를 사용해서 그런것 같다.
베스트코드 (프로그래머스 출처)
import java.util.Arrays; class Divisible { public int[] divisible(int[] array, int divisor) { //ret에 array에 포함된 정수중, divisor로 나누어 떨어지는 숫자를 순서대로 넣으세요. return Arrays.stream(array).filter(factor -> factor % divisor == 0).toArray(); } // 아래는 테스트로 출력해 보기 위한 코드입니다. public static void main(String[] args) { Divisible div = new Divisible(); int[] array = {5, 9, 7, 10}; System.out.println( Arrays.toString( div.divisible(array, 5) )); } } |
람다식으로 하면 이렇게 한번에 나온다는걸 볼수 있고, 여러가지 자바문법이 익숙하지 않는것이 많이 있었다.
나중에 진도를 따라잡는다면 람다도 한번 공부해 봐야될것 같다.
728x90