[프로그래머스 / Python] 진료순서 정하기

Kun-Woo Kim·2024년 12월 27일

알고리즘 공부

목록 보기
4/24
post-thumbnail

문제 출처

https://school.programmers.co.kr/learn/courses/30/lessons/120835


문제

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


포인트

  • 응급도 순 정렬: 입력받은 emergency 리스트를 내림차순으로 정렬하여 응급도가 높은 순으로 처리합니다.
  • 인덱스 매핑: 정렬된 리스트에서 각 원래 요소의 위치를 찾아 해당 순서를 반환합니다. 리스트 내 값의 위치를 정확히 찾는 방법이 중요합니다.

내 답안

def solution(emergency):
    # 결과를 저장할 리스트 초기화
    answer = []
    # 응급도에 따라 내림차순으로 정렬
    sorted_list = sorted(emergency, reverse=True) 
    
    # 원본 리스트의 각 요소에 대하여
    for i in emergency:
        # 정렬된 리스트에서 해당 요소의 인덱스를 찾아 순서로 추가 (+1은 1-based index로 변환)
        answer.append(sorted_list.index(i) + 1)

    return answer

결론 및 느낀점

이 문제를 통해 리스트를 정렬하고 각 원소의 인덱스를 효과적으로 매핑하는 방법을 연습할 수 있었습니다. 특히, 중복된 요소가 있을 때 각 요소의 순위를 어떻게 결정하는지에 대해 생각해 볼 수 있는 좋은 기회였습니다. 그러나, 내가 작성한 코드는 효율성 측면에서 개선할 여지가 있음을 발견했고, 더 효율적인 접근 방법을 고민해 보아야 할 것입니다.

profile
안녕하세요, 김건우입니다! 웹과 앱 개발에 열정적인 전문가로, Next.js 14, Node.js, Express, Flutter 등을 활용한 프로젝트를 다룹니다. 제 블로그에서는 개발 여정, 기술 분석, 실용적 코딩 팁을 공유합니다. 창의적인 솔루션을 실제로 적용하는 과정의 통찰도 나눌 예정이니, 궁금한 점이나 상담은 언제든 환영합니다.

0개의 댓글