Notice
Recent Posts
Recent Comments
Link
관리 메뉴

윤일무이

[JavaScript] 프로그래머스 코딩테스트 입문 : 진료순서 정하기 본문

⚙️ 코딩테스트

[JavaScript] 프로그래머스 코딩테스트 입문 : 진료순서 정하기

썸머몽 2023. 4. 6. 00:38
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