[2021-04-29] K번째 수

2021. 4. 29. 21:15코딩테스트

푼 시간 : 30분

언어 : 자바

 


 

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

 

코딩테스트 연습 - K번째수

[1, 5, 2, 6, 3, 7, 4] [[2, 5, 3], [4, 4, 1], [1, 7, 3]] [5, 6, 3]

programmers.co.kr

 

이 쉬운걸 왜 아직도 풀지 못했었는가

매번 풀때마다 이상하게 돌아돌아 가는 습관이 있었던 것 같다.

요새는 귀찮음?이 생각을 바꾼다고

코드를 점점 짧게 하려다 보니 전에는 1시간을 들여다봐도 안됐던것이

10분만에 풀고 ( 오랜만에 봐서 기억이 안나던 것들 때문에 ) 20분을 더 소비했다

 

import java.util.*;

class Solution {
    public int[] solution(int[] array, int[][] commands) {
        int count=commands.length;
        int[] answer = new int[count];
        int[] solution={};
        
        for(int i=0; i<commands.length; i++) {
        	solution= Arrays.copyOfRange(array, commands[i][0]-1, 
                                               commands[i][1]);
                          // array와 같은 배열을 복사
                          //(commands의 0번째 원소와 1번째 원소의 범위대로)
        	Arrays.sort(solution);               // 정렬
        	answer[i]=solution[commands[i][2]-1];
                          // solution의 commands 2번째 원소의 숫자를 
                          //answer의 i범위에 넣는다.
        }
        
        return answer;
    }
}

 

덧 붙여서 원래 코드는 for 안에서 int[]를 해 만들었으나

그럼 계속 solution 배열을 생성하는 꼴이니 그냥 위에 선언을 했다.

'코딩테스트' 카테고리의 다른 글

[2021-05-03] 음양 더하기  (0) 2021.05.03
[2021-05-01] 모의고사  (0) 2021.05.01
[2020-12-01] 하샤드 수  (0) 2020.12.01
[2020-11-26] 콜라츠 추측  (0) 2020.11.26
[2020-11-20] 최대공약수와 최소공배수  (0) 2020.11.20