[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 |