[프로그래머스] Lv.0 진료순서

Jiumn·2023년 2월 15일
0

[프로그래머스] Lv.0 진료순서

문제 설명

외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.

제한사항

중복된 원소는 없습니다.
1 ≤ emergency의 길이 ≤ 10
1 ≤ emergency의 원소 ≤ 100

입출력 예

emergencyresult
[3, 76, 24][3, 1, 2]
[1, 2, 3, 4, 5, 6, 7][7, 6, 5, 4, 3, 2, 1]
[30, 10, 23, 6, 100][2, 4, 3, 5, 1]

입출력 예 설명

입출력 예 #1

emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.

입출력 예 #2

emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다.

입출력 예 #3

emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.

풀이

요소의 값이 클수록 응급도가 높아야 하므로(작은 숫자가 매겨져야 하므로) 내림차순으로 정렬하고 정렬했을 때의 인덱스를 구한 다음
원래 배열에 담긴 순서대로 새로운 배열에 담으면 될 것 같았다.

문제는 .sort() 함수에 익숙해진 나머지 sorted() 함수 사용법을 정확히 몰랐다는 것.

sorted()는 .sort()와 달리 정렬하고자 하는 배열을 () 안에 넣어줘야 한다.

(.sort()는 원래 배열을 바꾸고 sorted()는 새로운 배열을 만든다는 차이가 있다.)

내림차순으로 정렬된 새로운 배열을 만들고 싶다면 sorted(emergency, reverse=True)와 같이 써줘야 함 ❕

다른 사람의 풀이

def solution(emergency):
    answer = []
    temp = sorted(emergency, reverse=True)
    
    for i in emergency:
        answer.append(temp.index(i)+1)
    return answer
profile
Back-End Wep Developer. 꾸준함이 능력이다.

0개의 댓글