[PS] Programmers/코딩테스트 연습/코딩테스트 입문: 진료순서 정하기
2023. 8. 2. 23:27ㆍ✨ PS(ProblemSolving)
문제
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.

풀이
function solution(emergency) {
var answer = [];
let arr = emergency.slice().sort((a,b) => b - a)
answer = emergency.map(ele => arr.indexOf(ele)+1)
return answer;
}
몰랐던 부분
arr 설정할 때, .slice() 존재 여부에 따라 답이 달라지는 이유?
=> emergency 배열을 내림차순으로 sort를 하여 arr 배열에 할당하는 과정에서, emergency 배열이 바뀌어버림.
마지막 answer에는 원본 배열의 요소들을 꺼내어 해당 요소가 arr의 몇번째 index인지 확인하여야 하기에
.slice의 존재여부에 의해 emergency 배열이 바뀌며 answer에 변화가 생기는 것.
'✨ PS(ProblemSolving)' 카테고리의 다른 글
[PS] Programmers/코딩테스트 입문/2차원으로 만들기 (0) | 2023.08.05 |
---|---|
[PS] Programmers/코딩테스트 연습/Summer/Winter Coding(~2018): 예산 (0) | 2023.08.04 |
[PS] Programmers/코딩테스트 연습/월간 코드 챌린지 시즌1: 이진 변환 반복하기 (0) | 2023.08.02 |
[PS] Programmers/코딩테스트 연습/스택,큐/같은 숫자는 싫어 (0) | 2023.07.27 |
[PS]Programemrs/코딩테스트연습/스택,큐/올바른괄호(Lv2) (0) | 2023.07.26 |