Computer Knowledge/코테 대비 오답노트
[python] 진료순서 정하기
l._.been
2023. 5. 26. 18:06
728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/120835#
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
환자의 응급도를 기준으로 진료 순서를 정하려고 한다.
정수 배열 emergency에 담긴 응급도가 가장 높을수록 진료 순서를 가장 먼저 정한 배열을 return 하도록 solution함수를 완성해라
나의 풀이
def solution(emergency):
d = sorted(emergency, reverse=True)
result = [0]*len(d)
for i, num in enumerate(d):
idx = emergency.index(num)
result[idx] = i+1
return result
- d : emergency 배열을 역순으로 정렬한 배열
- result : 순서를 나타낼 배열 (크기만큼 선언)
- enumerate를 사용해서 가장 큰 수가 있는 인덱스를 구해서 동일한 위치의 result에 저장한다
인상적인 풀이
def solution(emergency):
return [sorted(emergency, reverse=True).index(e) +1 for e in emergency]
내가 구현한 코드를 더 압축한 코드이다.
역순으로 정렬한 배열에 emergency 인자들의 각각의 index를 얻어낸후 1을 더하여 배열에 저장한다.
결과적으로 완성된 배열을 return 한다.