취업 및 이직 준비/코딩테스트 준비

프로그래머스 자바 (n 의 배수 고르기) 코딩테스트 문제

code2772 2023. 3. 19. 14:33
728x90
반응형

✔ 방법1

import java.util.Arrays;

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

1. Arrays를 임포트 해주기

2. .stream(numlist) 에서 뽑겠다.

3. .filter(v -> v % n == 0) 필터를 이용하여 조건에 맞는걸 뽑겠다. 조건은 n으로 나눈 경우 0

4. .toArray() - List 컨테이너의 인스턴스를 배열(array)로 만드는것이 'toArray' 메서드

 

###

new ArrayList<>() - 컬렉션 생성 시, 새로운 주소값으로 할당하기 위한 용도
new ArrayList<>()는 할 수 있고, Arrays.asList() 할 수 없다
Arrays.asList()는 고정된 List다. List 원소를 추가 할 수도, 삭제할 수도 없다.

 

✔ 방법2

class Solution {
    public int[] solution(int n, int[] numlist) {
        int count = 0;

        for(int i=0; i<numlist.length; i++) {
            if(numlist[i]%n==0){
                count++;
            }
        }

        int[] answer = new int[count];
        int index=0;
        for(int i=0; i<numlist.length; i++) {
            if(numlist[i]%n==0){
                answer[index]=numlist[i];
                index++;
            }
        }

        return answer;
    }
}

1. numlist의 길이만큼 반복을 하고

2. n으로 나눈 나머지가 0인 것 만큼 카운트 +하고

3. 그 만큼의 배열을 새로 만든다. 

4. 다시 numlist의 길이만큼 반복을 하고

5. n으로 나눈 나머지가 0인 것을 새로 만든 배열에 순서데로 넣어준다.

6. 조건을 만족하면 새 배열의 index를 한칸땅겨 반복하여 조건을 만족하는 것을 배열에 추가하여 값을 도출한다. 

 

반응형