리스트에 담긴 숫자가 큰 순서대로 순위를 리스트 형태로 출력하는 문제이다. 코드 제출하고 보니 가장 많은 표를 받은 코드와 똑같아서 가져왔다.
* 이어드림스쿨 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
'코딩테스트 > 파이썬 코테' 카테고리의 다른 글
[프로그래머스] 피자나눠먹기(2) - 파이썬(최대공약수, 최소공배수) (1) | 2023.06.08 |
---|---|
[프로그래머스] 최빈값 구하기 - 파이썬(Counter) (0) | 2023.06.08 |
댓글