[TIL_07.15] 코딩테스트_문제풀기
📝정렬
📍접근방법
1. i, j, k 값을 결정하기
- i,j,k가 어떤 값을 가질지 결정하는 것은 commands 배열의 row가 몇 번째이냐에 따라 결정된다
- commands 배열의 row는 commands의 길이와 같음을 이용해서 row에 따라 i,j,k 값을 결정하기
2. i부터 j까지 뽑아낸 배열을 정렬하기
- 배열의 첫 번째 요소를 min 값으로 설정
- 다음 요소와 비교하면서 min 값보다 작은 값이 있으면 min값의 위치와 비교한 값의 위치를 바꿈
- 오름차순으로 정렬
3. 정렬된 배열에서 k번째 숫자 뽑아내기
- 정렬된 배열에서 index가 [k-1]인 숫자를 answer배열에 넣기
📍코드
class Solution {
public int[] solution(int[] array, int[][] commands) {
int[] answer = new int[commands.length];
for(int a = 0; a < commands.length; a++) {
int i = commands[a][0];
int j = commands[a][1];
int k = commands[a][2];
int[] temp = new int[j - i + 1];
for(int index = 0; index < temp.length; index++) {
temp[index] = array[i-1];
i++;
}
int min = temp[0];
for(int c = 0; c < temp.length; c++) {
for(int b = c+1; b < temp.length; b++) {
if(temp[c] > temp[b]) {
min = temp[b];
temp[b] = temp[c];
temp[c] = min;
}
}
}
answer[a] = temp[k -1];
}
return answer;
}
}
💡공부할 것
📍정확한 개념이 필요한 부분
다차원 배열
1차원 이상의 배열을 구성 요소로 하는 배열
- 2차원 배열 : 배열을 구성 요소로 하는 배열
- 3차원 배열 : 2차원 배열을 구성 요소로 하는 배열
다차원 배열의 내부
int [][] x = new int[2][4];
2행 4열의 배열 x의 내부를 그림으로 나타내면 이렇게 보여진다
1. 배열의 이름(x)는 배열 그 자체가 아니라 배열을 참조하는 변수이다.
2. 배열 본체를 생성하고 x가 그걸 참조하도록 대입한다.
- 생성한 배열을 x에 의해 참조되고 각 요소에 접근하는 방식은 x[0], x[1]이다.
- 이 배열의 구성 요솟수(길이)는 배열이름(x).length로 구할 수 있다
3 배열 본체를 생성하고 x[0]이 그걸 참조하도록 대입한다.
- 생성한 배열을 x[0]에 의해 참조되고 각 요소에 접근하는 방식은 x[0][0], x[0][1], x[0][2]이다.
- 이 배열의 구성 요솟수(길이)는 배열이름(x[0]).length로 구할 수 있다
4 배열 본체를 생성하고 x[1]이 그걸 참조하도록 대입한다.
- 생성한 배열을 x[1]에 의해 참조되고 각 요소에 접근하는 방식은 x[1][0], x[1][1], x[1][2]이다.
- 이 배열의 구성 요솟수(길이)는 배열이름(x[0]).length로 구할 수 있다
📍문제에 적용
🙋♀️2차원 배열에서 2차원 배열의 길이 / 각 원소의 길이의 차이?
2차원 배열 commands의 길이
- 배열 변수 commands가 참조하고 있는 배열 본체의 길이(구성 요솟수)
각 원소의 길이
- commands가 참조하고 있는 본체가 참조하고 있는 배열 본체(commands[0], commands[1], commands[2])의 길이(구성 요솟수)를 말한다
🙋2차원 배열이름.length = 2차원 배열의 길이???
2차원 배열이름 = 배열 본체 자체가 아니라 배열 본체를 참조하는 변수
commands.length = commands가 참조하고 있는 배열 본체의 갯수를 구함
- commands[0], commands[1], commands[2] 를 참조하기 때문에 commands.length = 3
Author And Source
이 문제에 관하여([TIL_07.15] 코딩테스트_문제풀기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@zero9657/TIL07.15-코딩테스트문제풀기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)