본문 바로가기
코딩테스트/파이썬 코테

[프로그래머스] 진료순서 정하기 - 파이썬(index함수)

by 코듀킹 2023. 6. 15.

리스트에 담긴 숫자가 큰 순서대로 순위를 리스트 형태로 출력하는 문제이다. 코드 제출하고 보니 가장 많은 표를 받은 코드와 똑같아서 가져왔다.

 

 

 

* 이어드림스쿨 3기 참여하면서 진행하고 있는 스터디에서 발표한 내용입니다. (23년 6월 14일 코드리뷰 스터디 발표내용)

 

기존 코드

# Day08 진료순서정하기 self 기존 Code 
def solution(emergency):
	# emergency 숫자 하나씩 뽑아서(e) 내림차순 정렬시킨 emergency기준으로 인덱스(e) +1을 출력
    return [sorted(emergency, reverse=True).index(e)+1 for e in emergency]

 

코드 풀이

# Day08 진료순서정하기 self 기존 Code 보안/개선한 Code & Code 풀이(주석참고)

def solution(emergency):
	# 처음에 enumerate()함수써봤는데, 코드가 너무 길어져서 index()함수를 중심으로 생각해봤다.
	# 위 처번째 예시에서 answer = emergency.index(76)을 쓰면, result가 1이 나온다.
  # 그럼 emergency를 내림차순 정렬시켜서 기존 emergency의 인덱스에 하나씩 넣어서 출력하면
	# 되지않을까? 라는 아이디어에서 이 코드를 작성하게 되었다. 그리고 인덱스는 0부터 시작하니까
	# 마지막으로 index에 +1을 해주었다.
    return [sorted(emergency, reverse=True).index(e)+1 for e in emergency]

 

쉽게 풀어 쓴 코드

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

댓글