잡다한 배똥월드

728x90
코딩 테스트 풀이 체크리스트
2시간 내에 풀었는가? O
본인의 실력으로 풀었는가? O

 

 

코딩테스트 연습 - 제일 작은 수 제거하기

정수를 저장한 배열, arr 에서 가장 작은 수를 제거한 배열을 리턴하는 함수, solution을 완성해주세요. 단, 리턴하려는 배열이 빈 배열인 경우엔 배열에 -1을 채워 리턴하세요. 예를들어 arr이 [4,3,2,1

programmers.co.kr

 

 

 

 

 

class Solution {
    fun solution(arr: IntArray): IntArray {
        var answer = IntArray(arr.size - 1);
        if (answer.size == 0) {
            answer = IntArray(1, {-1});
        } else {
            var temp  = arr.copyOf();
            temp.sort();
            
            var min = temp[0];
            var position = 0;
            
            for (num in 0..arr.size-1) {
                if (min != arr[num]) {
                    answer[position] = arr[num];
                    position++;
                }
            }
        }
        return answer
    }
}

 

테스트 1 통과 (27.59ms, 77.8MB)
테스트 2 통과 (10.40ms, 66.8MB)
테스트 3 통과 (9.63ms, 66.5MB)
테스트 4 통과 (9.95ms, 66MB)
테스트 5 통과 (12.16ms, 65MB)
테스트 6 통과 (10.81ms, 67MB)
테스트 7 통과 (10.06ms, 66.5MB)
테스트 8 통과 (9.94ms, 65.8MB)
테스트 9 통과 (9.35ms, 64.6MB)
테스트 10 통과 (9.77ms, 65.9MB)
테스트 11 통과 (9.71ms, 66.6MB)
테스트 12 통과 (9.68ms, 65.3MB)
테스트 13 통과 (15.00ms, 64.7MB)
테스트 14 통과 (9.76ms, 66.2MB)
테스트 15 통과 (9.59ms, 65.9MB)
테스트 16 통과 (9.81ms, 64.5MB)

 

 

 

 

 

일단 코틀린에 ArrayList가 있는지도 이제 알았고... 걱정이네 이번주에 시험 볼 수 있을라나..

 

 

 

 

 

일단 answer을 arr의 길이 - 1로 배열 길이를 설정한다.

이 때 만약 answer의 길이가 0이면 새로 answer을 초기화해서 -1을 넣고 끝내고,

answer의 길이가 0이 아니면 이제 arr을 복사해서 새로운 배열을 하나 만들고, 그걸 sort()로 오름차순 정렬을 한다.

 

 

 

 

그래서 가장 작은 값을 구하고, for문으로 그 값이 아니면 answer에 넣는 것으로 진행한다.

 

 

 

 

 

 

728x90

+ Recent posts