상세 컨텐츠

본문 제목

항해28일차

본문

728x90
반응형

항해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번 문제를 해결하는 데 필요한 모든 요소를 포함하고 있습니다.

728x90
반응형

'<알고리즘 문제풀이& 연습> > 코딩테스트 연습' 카테고리의 다른 글

항해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

관련글 더보기