알고리즘 공부/문제 풀이

[프로그래머스] 정렬 - k 번째 수

valid_ming 2020. 8. 6. 18:26

각각의 command마다 해당하는 배열을 따로 생성해준뒤, 생성한 배열을 sort하고

n번째 값을 저장하는 방식으로 문제를 풀이했다.

 

 static int[] solution(int[] array, int[][] commands) {
		 
		 	// answer의 크기는 command의 길이와 같다
	        int[] answer =new int[commands.length];
	        
	        // 각 command에 해당하는 arr를 만들어 준다.
	        for(int i=0;i<commands.length;i++){
	            int[] arr=new int[commands[i][1]-commands[i][0]+1];
	            int index=0;
	            
	            // 주어진 array에서 command에 해당하는 값들을 arr에 넣어준다.
	        	for(int j=commands[i][0]-1;j<=commands[i][1]-1;j++) {
	            	arr[index]=array[j];
	            	index++;
	            }
	        	
	        	// array 라이브러리를 이용하여 sort해준다
	        	Arrays.sort(arr);
	        	// command[i][2]에 해당하는 값을 answer에 넣어준다.
	        	// 단 command[i][2]는 index값이 아닌 n번째 숫자를 나타내므로 -1을 해준다
	        	answer[i]=arr[commands[i][2]-1];
	        }
	        
	        return answer;
	    }