1 minute read

n의 배수 고르기

문제 설명

정수 n과 정수 배열 numlist가 매개변수로 주어질 때, numlist에서 n의 배수가 아닌 수들을 제거한 배열을 return하도록 solution 함수를 완성해주세요.


제한사항

  • 1 ≤ n ≤ 10,000
  • 1 ≤ numlist의 크기 ≤ 100
  • 1 ≤ numlist의 원소 ≤ 100,000

입출력 예

n numlist result
3 [4, 5, 6, 7, 8, 9, 10, 11, 12] [6, 9, 12]
5 [1, 9, 3, 10, 13, 5] [10, 5]
12 [2, 100, 120, 600, 12, 12] [120, 600, 12, 12]

입출력 예 설명

입출력 예 #1

  • numlist에서 3의 배수만을 남긴 [6, 9, 12]를 return합니다.

입출력 예 #2

  • numlist에서 5의 배수만을 남긴 [10, 5]를 return합니다.

입출력 예 #3

  • numlist에서 12의 배수만을 남긴 [120, 600, 12, 12]를 return합니다.

나의 풀이 코드

import java.util.*;
class Solution {
    public int[] solution(int n, int[] numlist) {
        int[] answer = {};

        List<Integer> result = new ArrayList<>(); 
        
        for (int i=0; i<numlist.length; i++){
            if (numlist[i]%n==0){
                result.add(numlist[i]);
            }
        }
        System.out.println(result);
        answer = result.stream().mapToInt(Integer::intValue).toArray();
        return answer;
    }
}

배운점

마지막에 리스트를 배열로 바꿀때 그대로 참조형 데이터형 배열로 바꾼다면 toArray()를 사용하면 되지만 기본형 데이터형식의 배열로 바꾸고 싶을땐 스트림을 사용한다.

  • .stream().mapToInt(Integer::intValue).toArray();
  • .stream().mapToInt(x->x).toArray();
import java.util.Arrays;

class Solution {
    public int[] solution(int n, int[] numList) {
        return Arrays.stream(numList).filter(value -> value % n == 0).toArray();
    }
}

다른사람이 스트림으로 풀은 코드이다.
단지 필터링해주었을 뿐이다.

Leave a comment