[python 코딩테스트 lv 0] 진료순서 정하기

seoyeon·2023년 4월 18일
0

코딩테스트 python

목록 보기
8/11
post-thumbnail

문제설명

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

제한사항

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

입출력 예

풀이 1

내림차순 정렬한 배열을 만들고, 원래 배열과 비교하여 인덱스 값 찾고, answer에 넣어주기

def solution(emergency):
    answer = []
    e = sorted(emergency, reverse=True)
    
    for i in emergency:
        answer.append(e.index(i)+1)
    return answer

list comprehension 사용

def solution(emergency):
    e = sorted(emergency, reverse=True)
    return [(e.index(i)+1) for i in emergency]

풀이2

딕셔너리, enumerate 함수 사용

def solution(emergency):
    answer = []
#     emergency 내림차순하기
#     i=> 키값(인덱스)
#     e => 수 정렬된 배열
#     enumerate => key와 value 값 반환
    emer_ls = {e: i + 1 for i, e in enumerate(sorted(emergency, reverse=True))}
    
        # 원래 수가 들어있는 emergency 값 e를 순서가 담겨있는 딕셔너리 emer_ls의
    # 배열 값과 비교해서 인덱스(위치)값을 추출 해냄 
    for e in emergency:
        answer.append(emer_ls[e])
    return answer
profile
항상 질문하는 개발자가 되고 싶습니다✋

0개의 댓글