코딩테스트의 K번째수를 풀어보았다 LEVEL 1이고 쉬운문제였다.
문제는 아래와 같다.
https://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
요점은 배열에 있는 정보를 뽑아오는 것인데 내 코드는 아래와 같다.
import java.util.Arrays;
class Solution {
public int[] solution(int[] array, int[][] commands) {
//commands의 길이 만큼 answer배열 초기화
int length = commands.length;
int[] answer = new int[length];
//getNumber메소드 호출
for(int i=0;i<length;i++){
answer[i]=getNumber(array, commands[i]);
}
return answer;
}
public int getNumber(int[] array, int[] command){
//첫번째 지점
int start=command[0];
//두번째 지점
int last=command[1];
//길이
int length=last-start+1;
//찾고자하는 인덱스
int retindex = command[2]-1;
//임시배열
int[] tempList=new int[length];
//실질적으로 리스트에서 원하는 부분만 뽑는부분
int index=start-1;
for(int i=0;i<length;++i){
tempList[i]=array[index];
index++;
}
//정렬
Arrays.sort(tempList);
//리턴
return tempList[retindex];
}
}
나름 메소드화해서 풀었다.
리스트에서 원하는 부분만 뽑는거는 자바에 있는 배열관련 API를 사용하면 더 짧게 작성이 가능하다.
-끝-
'프로그래밍공부 > 알고리즘' 카테고리의 다른 글
코딩테스트 - 문자열 압축 (0) | 2020.08.04 |
---|---|
카카오톡 코딩테스트 - 다트게임 (0) | 2020.08.04 |
코딩테스트 - 알고리즘 공부 - 베스트앨범 (2) | 2020.07.28 |
코딩테스트 - 알고리즘 - 다리를 지나는 트럭 (0) | 2020.07.28 |
코딩테스트 - 위장 (0) | 2020.07.24 |