항해28일차 정렬 문제
leetcode 506번...
개인적으로 leetcode 불편.. ㅜ ㅜ
Leetcode 506번 문제는 "Relative Ranks"로, 주어진 점수에 따라 순위를 매기고, 상위 3명에게는 메달을 수여하는 문제입니다. 아래는 이 문제에 대한 파이썬 솔루션입니다.
## 문제 설명
- 주어진 점수 리스트에서 각 점수에 대한 순위를 매깁니다.
- 상위 3명에게는 "Gold Medal", "Silver Medal", "Bronze Medal"을 수여하고, 나머지 점수는 순위로 표시합니다.
## 파이썬 솔루션
아래는 Leetcode 506번 문제를 해결하기 위한 파이썬 코드입니다:
```python
def findRelativeRanks(score):
# 점수와 인덱스를 함께 저장
score_with_index = [(s, i) for i, s in enumerate(score)]
# 점수를 내림차순으로 정렬
score_with_index.sort(reverse=True, key=lambda x: x[0])
# 결과 리스트 초기화
result = [""] * len(score)
# 순위 매기기
for rank, (s, i) in enumerate(score_with_index):
if rank == 0:
result[i] = "Gold Medal"
elif rank == 1:
result[i] = "Silver Medal"
elif rank == 2:
result[i] = "Bronze Medal"
else:
result[i] = str(rank + 1)
return result
```
## 코드 설명
- **점수와 인덱스 저장**: 각 점수와 그에 해당하는 인덱스를 튜플로 묶어 리스트에 저장합니다.
- **정렬**: 점수를 기준으로 내림차순으로 정렬합니다.
- **순위 매기기**: 정렬된 리스트를 순회하며 각 점수에 대해 순위를 매깁니다. 상위 3명에게는 메달을 부여하고, 나머지 점수는 순위로 표시합니다.
## 예시
```python
scores = [5, 4, 3, 2, 1]
print(findRelativeRanks(scores))
# 출력: ['Gold Medal', 'Silver Medal', 'Bronze Medal', '4', '5']
```
이 코드는 Leetcode 506번 문제를 해결하는 데 필요한 모든 요소를 포함하고 있습니다.
항해30일차 (1) | 2024.11.27 |
---|---|
항해29일차 (2) | 2024.11.26 |
항해27일차 (1) | 2024.11.24 |
항해26일차 (0) | 2024.11.23 |
99클럽 코테 스터디 25일차 TIL + 오늘의 학습 키워드 : 힙 (1) | 2024.11.22 |