본문 바로가기

프로그래머스

나누어 떨어지는 숫자 배열

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

'프로그래머스' 카테고리의 다른 글

k번째수  (0) 2022.12.26
행렬의덧셈  (0) 2022.12.26
하샤드수  (0) 2022.12.26
없는숫자더하기  (0) 2022.12.21
문자열 다루기 기본  (0) 2022.12.21