728x90
문제 및 제한사항
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
**제한사항**
중복된 원소는 없습니다.
1 ≤ emergency의 길이 ≤ 10
1 ≤ emergency의 원소 ≤ 100
풀이 방법
예를 들어 emergency = [3, 76, 24] 일 때, result = [3, 1, 2] 처럼 100에 가까운 순서의 배열을 리턴해야 한다.
기존의 배열을 그대로 두되 사용할 배열을 하나 복사한다. (전개 구문을 써도 되고 Array.from을 써도 된다.)
사용할 배열을 내림차순으로 정렬하면 [76, 24, 3] 이렇게 되고, 가장 큰 값부터 인덱스 0, 1, 2를 가진다.
인덱스에 1을 더하면 원하는 대로 순서가 나온다. (76이 1번, 24가 2번, 3이 3번 처럼)
따라서 사용할 배열에서 해당 원소의 인덱스를 찾고, 거기에 1을 더한 값을 기존 배열의 원소로 바꿔주면 된다.
코드
function solution(emergency) {
let sortedEmergency = [...emergency].sort((a, b) => b-a)
return emergency.map((item) => sortedEmergency.indexOf(item)+1)
}
728x90
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 한 번만 등장한 문자 (0) | 2023.04.06 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 숨어있는 숫자의 덧셈 (2) (0) | 2023.04.06 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 가까운 수 (0) | 2023.03.28 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 2차원으로 만들기 (0) | 2023.03.28 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 팩토리얼 (0) | 2023.03.28 |