250x250
Notice
Recent Posts
Recent Comments
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 막내의막무가내 rxjava
- 주택가 잠실새내
- 막내의막무가내 코볼 COBOL
- 막내의막무가내
- 막내의막무가내 안드로이드 코틀린
- 프로그래머스 알고리즘
- 안드로이드
- 막내의 막무가내 알고리즘
- 2022년 6월 일상
- 막내의막무가내 플러터 flutter
- 막내의막무가내 코틀린
- 부스트코스에이스
- 막내의막무가내 SQL
- 막무가내
- 막내의막무가내 목표 및 회고
- 막내의막무가내 플러터
- 막내의 막무가내
- 안드로이드 Sunflower 스터디
- 막내의막무가내 프로그래밍
- flutter network call
- 부스트코스
- 프래그먼트
- 막내의막무가내 코틀린 안드로이드
- 막내의막무가내 안드로이드 에러 해결
- 안드로이드 sunflower
- 막내의막무가내 알고리즘
- 주엽역 생활맥주
- Fragment
- 막내의막무가내 안드로이드
- 막내의막무가내 일상
Archives
- Today
- Total
막내의 막무가내 프로그래밍 & 일상
[알고리즘] 프로그래머스 정렬 'K번째수' -정렬- 본문
728x90
public int[] solution(int[] array, int[][] commands) {
ArrayList<Integer> list = new ArrayList(); //실질적으로 데이터를 담고 사용할 리스트
List<Integer> tmpList = new ArrayList<Integer>();
int result[] = new int[commands.length]; //결과값은 commands의 첫번째 배열크기만큼이다.
//초기 데이터 담기
for (int v : array) {
list.add(v);
}
for (int i = 0; i < commands.length; i++) { //결과값의 총 개수만큼 반복
//규칙값 3개 받아옴
int firstIndex = commands[i][0];
int endIndex = commands[i][1];
int findIndex = commands[i][2];
tmpList.clear();
// 1. 자르기
tmpList.addAll(list);
List<Integer> resutList = tmpList.subList(firstIndex - 1, endIndex);
// 2.정렬
Collections.sort(resutList);
// 3. c번쨰 숫자 뭔지 확인 및 결과배열 담기
result[i] = resutList.get(findIndex - 1).intValue();
}
return result;
}
문제는 쉬웠으나 한가지를 몰라서 시간이 좀더 걸리게되었다..
subList() 가 깊은복사가 아닌 얕은 복사가 된다는 점을 몰랐었다.
그래서 list의 subList()해서 tmpList에 처음에 받고 했었으나 tmpList를 정렬하면 list까지 정렬이 되어서 수정하였다.
https://programmers.co.kr/learn/courses/30/lessons/42748
728x90
'알고리즘 > 문자열, 정렬' 카테고리의 다른 글
[알고리즘] 프로그래머스 H-Index -정렬- (0) | 2020.04.14 |
---|---|
[알고리즘] 프로그래머스 가장 큰 수 -정렬- (2) | 2020.03.11 |
[알고리즘] 백준 11650 좌표 정렬하기 -정렬- (0) | 2020.02.28 |
[알고리즘] 백준 10989 수 정렬하기 3 -정렬- (0) | 2020.02.28 |
[알고리즘] 백준 2751 수 정렬하기 2 -정렬- (0) | 2019.09.02 |
Comments