[2020-11-05] 나누어 떨어지는 숫자 배열

2020. 11. 5. 17:51코딩테스트

푼 시간 : 10분

언어 : 자바

 


 

programmers.co.kr/learn/courses/30/lessons/12910

 

코딩테스트 연습 - 나누어 떨어지는 숫자 배열

array의 각 element 중 divisor로 나누어 떨어지는 값을 오름차순으로 정렬한 배열을 반환하는 함수, solution을 작성해주세요. divisor로 나누어 떨어지는 element가 하나도 없다면 배열에 -1을 담아 반환하

programmers.co.kr

 

생각 한 대로 풀었다. 이번에는 그냥 빨리 빨리 푸는데 중점을 뒀다.

예상외로 answer에 배열을 넣기전에 array 배열을 정렬 한 뒤 넣어봤는데

answer에서 갑자기 0,0 으로 변하는것이었다.

아직 이유는 찾지 못했고 그냥 answer에 넣은 뒤 정렬을 했다.

 

import java.util.*;

class Solution {
    public int[] solution(int[] arr, int divisor) {
        int[] answer = {};
        int count=0;
        int[] array=new int[arr.length];
        
        for(int i=0; i<arr.length; i++){
            if((arr[i]%divisor)==0){
            // 나눠서 나머지가 0
                array[count]=arr[i];
                count++;
            }
        }
        
        if(count==0){
            count=1;
            array[0]=-1;
            answer=Arrays.copyOfRange(array, 0, count);
            // 카운트가 0이면 -1을 넣는다.
        }
        
        else
            answer=Arrays.copyOfRange(array, 0, count);
            // 카운트만큼 배열 복사
        
        Arrays.sort(answer);
        
        return answer;
    }
}

 

다음 날 제주도를 가기 위해서 두개를 풀었다.

사실 하루에 두개를 풀 만한 문제들을 골라서 풀었다...

공부를 더 하고 풀어야 하는데

너무 코드가 효율적이지 않아서 얼른 책을 하나 사야겠다.