본문 바로가기
메모장/코딩테스트 준비

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

by code2772 2023. 3. 19.

[ 목차 ]

    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를 한칸땅겨 반복하여 조건을 만족하는 것을 배열에 추가하여 값을 도출한다. 

     

    반응형