728x90
[배운점]
배열 복사는 스프레드 연산자인 점 까먹지 말기!!
- 오답: emergency.sort((a,b) => b-a)
- 정답: [...emergency].sort((a,b) => b-a)
[indexOf 메소드]
arr.indexOf(searchElement[, fromIndex])
- searchElement: 배열에서 찾을 요소
- fromIndex (옵션): 검색을 시작할 인덱스. 이 값을 생략하면 배열의 처음부터 검색을 시작함.
[indexOf 예시]
const animals = ["cat", "dog", "elephant", "bee", "ant"];
console.log(animals.indexOf("cat")); // 0
console.log(animals.indexOf("elephant"));// 2
console.log(animals.indexOf("tiger")); // -1 (배열에 "tiger"는 없음)
console.log(animals.indexOf("dog", 2)); // -1 (인덱스 2 이후에서는 "dog"를 찾을 수 없음)
그러나 이 방식은 배열에 중복된 원소가 없을 때만 적절하게 동작한다. 만약 중복된 원소가 있다면, 항상 중복된 원소의 첫 번째 위치를 반환하게 된다.
[정답코드]
function solution(emergency) {
let sorted = [...emergency].sort((a, b) => b - a); // 내림차순 정렬
return emergency.map((e) => sorted.indexOf(e) + 1); //원래 배열에서 원소가 있으면 인덱스를 반환(1부터 시작하므로 1 더해줌)
}
728x90
반응형
'코딩테스트(JavaScript) > 코딩테스트 입문' 카테고리의 다른 글
프로그래머스- 2차원으로 만들기 (0) | 2023.09.04 |
---|---|
프로그래머스-외계행성의 나이 (0) | 2023.08.23 |
프로그래머스-특정 문자 제거하기 (0) | 2023.08.21 |
프로그래머스-짝수 홀수 개수 (0) | 2023.08.20 |
프로그래머스-직각삼각형 출력하기 (0) | 2023.08.18 |