728x90


어려웠던 점:
1.현실 카운팅 (1부터셈: 1,2,3...) 과 array의 index값 카운팅(0부터셈 : 0,1,2...)의 차이를 인지해야한다.
2.sort의 오름차순 정렬방법을 알아야 한다.
자바스크립트 sort는 숫자가 아닌 문자로 인식하기때문에, sort(); 이렇게 공백으로 처리한다면.
예를들면 [1,2,3,10] 이렇게 정렬해주는 것이아니라,
[1,10,2,3] 이런식으로 정렬이 된다고 한다 (아래예제참고)
그래서 숫자정렬시 파라미터(compareFunction)을 입력 해주어야 한다,
즉 ((a,b)=>a-b) 이것이 sort의 오름차순 파라미터이고, 이것을 명시해주어야 숫자 정렬을 할 수 있다.
compareFunction
- 이함수는 두개의 배열 element를 파라미터로 입력받는다.
- 이함수가 a,b 두개의 element를 파라미터로 입력받을 경우,
- 이 함수가 리턴하는 값이 0보다 작을 경우, a가 b보다 앞에 오도록 정렬하고,
- 이 함수가 리턴하는 값이 0보다 클 경우, b가 a보다 앞에 오도록 정렬합니다.
- 만약 0을 리턴하면 a와 b의 순서는 변경하지 않는다.
const arr = [2, 1, 3, 10];
arr.sort ();
document.write(arr +'<br>');
//[1, 10, 2, 3]
const arr = [2, 1, 3, 10];
arr.sort ( function(a, b){
if(a > b) return 1;
if(a === b) return 0;
if(a < b) return -1;
} );
document.write(arr +'<br>');
//[1, 2, 3, 10]
아래는 .sort(compareFunction) 설명 링크이다.
https://hianna.tistory.com/409
[Javascript] 배열 정렬하기 (오름차순, 내림차순, 문자열, 객체)
배열 정렬하기 (오름차순, 내림차순, 문자열, 객체) 1. sort() 함수 2. sort() 함수로 숫자 오름차순 정렬하기 3. sort() 함수로 숫자 내림차순 정렬하기 4. sort() 함수로 문자열 정렬하기 5. sort() 함수
hianna.tistory.com
문제 정답
function solution(array, commands) {
let answer = [];
let Sarr = [];
for(let i = 0; i<commands.length; i++){
Sarr = array.slice(commands[i][0]-1,commands[i][1]);
Sarr.sort((a,b) => a-b);
answer.push(Sarr[commands[i][2]-1]);
}
return answer;
}
728x90
'Programmers > javascript' 카테고리의 다른 글
[JS] Programmers 최대공약수와 최소공배수 ☑ (0) | 2022.06.10 |
---|---|
[JS] Programmers 모의고사 ☑ (0) | 2022.06.09 |
[JS] Programmers 이상한 문자 만들기 ☑ (0) | 2022.06.08 |
[JS] Programmers 부족한 금액 계산하기 ☑ (0) | 2022.06.08 |
[JS] Programmers 같은 숫자는 싫어 ☑ (0) | 2022.06.08 |