데이터 꿈나무
[코딩 테스트] 프로그래머스_진료 순서 정하기(Python)_sorted, reverse, append 본문
Activity/Algorithm
[코딩 테스트] 프로그래머스_진료 순서 정하기(Python)_sorted, reverse, append
ye_ju 2023. 2. 10. 10:36문제 설명
외과의사 머쓱이는 응급실에 온 환자의 응급도를 기준으로 진료 순서를 정하려고 합니다. 정수 배열 emergency가 매개변수로 주어질 때 응급도가 높은 순서대로 진료 순서를 정한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 중복된 원소는 없습니다.
- 1 ≤ emergency의 길이 ≤ 10
- 1 ≤ emergency의 원소 ≤ 100
입출력 예
| emergency | result |
| [3, 76, 24] | [3, 1, 2] |
| [1, 2, 3, 4, 5, 6, 7] | [7, 6, 5, 4, 3, 2, 1] |
| [30, 10, 23, 6, 100] | [2, 4, 3, 5, 1] |
입출력 예 설명
입출력 예 #1
- emergency가 [3, 76, 24]이므로 응급도의 크기 순서대로 번호를 매긴 [3, 1, 2]를 return합니다.
입출력 예 #2
- emergency가 [1, 2, 3, 4, 5, 6, 7]이므로 응급도의 크기 순서대로 번호를 매긴 [7, 6, 5, 4, 3, 2, 1]를 return합니다.
입출력 예 #3
- emergency가 [30, 10, 23, 6, 100]이므로 응급도의 크기 순서대로 번호를 매긴 [2, 4, 3, 5, 1]를 return합니다.
코드
def solution(emergency):
answer = []
a = sorted(emergency)
a.reverse()
for i in emergency:
answer.append(a.index(i)+1)
return answer
코드 설명은 위의 입출력 예 첫번째 예시값을 가지고 설명하겠습니다.
- answer이라는 이름으로 빈 리스트를 만들어 줍니다. 여기에 나중에 입출력 예시에 있는 result 값이 들어가게 됩니다.
- emergency의 크기가 큰 순서대로 응급도가 높은 것이기 때문에 우리는 큰 순서대로 정렬을 해야 합니다. 그래서 작은 수부터 정렬하는 함수인 sorted를 사용하여 정렬해줍니다. 예를 들어, [3, 24, 76]이 되는 것입니다. 그것을 a에 저장해줍니다.
- 이렇게 정렬한 리스트의 요소를 거꾸로 뒤집기 위해 reverse 함수를 사용하여 [76, 24, 3]과 같은 형태로 만들어 줍니다.
- 다음으로 반복문을 사용하여 emergency의 요소들이 하나씩 i에 넣어주면서 반복을 하게 해줍니다.
- a.index(i)+1는 a에서 index(i)가 있는 인덱스를 찾아주고 거기에 1을 더해달라는 코드입니다. 예를 들어, 반복문이 돌면서 emergency에 있는 요소들이 하나씩 i에 들어가게 되어 반복 코드는 a.index(3)+1, a.index(76)+1, a.index(24)+1 이렇게 진행되게 됩니다. 그러면 a에서 숫자 3요소가 있는 인덱스를 찾아 주겠죠? 그 값은 2인데 인덱스는 0부터 시작하기 때문에 1을 더해줘서 3이됩니다.
- 이렇게 진행한 것을 빈리스트인 answer에 append함수를 사용하여 붙여줍니다.
- 그러면 emergency의 응급도가 높은 순서대로 진료 순서가 나오게 됩니다.
이해가 잘 되셨을지 모르겠네요~ 저도 처음에는 조금 헷갈렸었답니다ㅎㅎ 질문있으시다면 댓글 남겨주세요!
감사합니다!!
'Activity > Algorithm' 카테고리의 다른 글
| [코딩 테스트] 프로그래머스_암호해독(문자열에서 배수 글자만 출력하기) (0) | 2023.02.21 |
|---|---|
| [코딩 테스트] 파이썬 문자열에서 모음 제거하기(프로그래머스 모음 제거) (0) | 2023.02.19 |
| [코딩 테스트] 프로그래머스_삼총사_리스트에서 추출하여 더하기(Python) (0) | 2023.02.09 |
| [코딩테스트] 프로그래머스_k의 개수(Python) (0) | 2023.02.07 |
| [코딩 테스트] 프로그래머스_OX퀴즈(Python) (0) | 2023.02.06 |
Comments