티스토리 뷰

 

https://school.programmers.co.kr/learn/courses/30/lessons/12910

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내 풀이

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        ArrayList<Integer> a1 = new ArrayList<Integer>();  
        //arr요소를 divisor로 나눈 나머지 값이 0이면 a1 배열에 담는다.
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] % divisor == 0) {
                a1.add(arr[i]);
            }
        }
        
        if (a1.size()==0) {
        //a1 배열에 담긴 값이 없으면 -1을 배열에 담는다.
            a1.add(-1);
        } else {
            Collections.sort(a1);
        }
        int[] answer = {};
        //출력값 int[]로 변환한다.
        answer = new int[a1.size()];
        for( int i =0; i<a1.size();i++){
            answer[i] = a1.get(i);
        }
        return answer;
}
}

 

 

 

 

 

다른사람 풀이

 

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();
    }

 

 


 

아직 람다식, Stream에 익숙하지 않았고, Array메서드와 ArrayList 메서드의 차이에 익숙하지 않다.

람다식과 Stream에 대해 공부를 하고, 꾸준히 연습을 해야겠다. 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2026/03   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함