본문 바로가기

Algorithm/자료구조

(C++) - LeetCode (easy) 506. Relative Ranks

반응형

https://leetcode.com/problems/relative-ranks/description/

 

Relative Ranks - LeetCode

Can you solve this real interview question? Relative Ranks - You are given an integer array score of size n, where score[i] is the score of the ith athlete in a competition. All the scores are guaranteed to be unique. The athletes are placed based on their

leetcode.com

자료구조 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

1. 정답 vector ans를 선언하고 score.size()만큼 공간을 할당합니다.2. key에는 점수, value에는 그 점수를 가진 index를 저장할 scoreMap을 선언하고 score의 원소를 순회하며 값을 저장합니다.

📔 풀이과정

1. map에는 score에 대한 오름차순으로 저장됩니다. 

2. scoreMap 원소를 순회하면서 rank에 따른 정답을 ans의 index에 저장합니다.

📔 정답 출력 | 반환

ans를 반환합니다.


📕 Code

📔 C++

class Solution {
public:
    vector<string> findRelativeRanks(vector<int>& score) {
        vector <string> ans(score.size());
        map<int ,int> scoreMap;
        for(int i = 0; i < score.size(); i++) {
            scoreMap[score[i]] = i;
        }
        int rank = score.size();
        for(auto sm : scoreMap) {
            if(rank == 1) {
                ans[sm.second] = "Gold Medal";
            } else if (rank == 2) {
                ans[sm.second] = "Silver Medal";
            } else if(rank == 3) {
                ans[sm.second] = "Bronze Medal";
            } else {
                ans[sm.second] = to_string(rank);
            }
            rank--;
        }
        return ans;
    }
};

*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.