코린이의 소소한 공부노트

[LeetCode/Easy] 506. Relative Ranks 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 506. Relative Ranks

무지맘 2023. 5. 23. 13:23

1. Input

1) int[] score

 

2. Output

1) 각 점수에 대해서 등수를 매긴 string[]을 반환

- 1등은 “Gold Medal"

- 2등은 "Silver Medal"

- 3등은 “Bronze Medal"

- x등은 “x"

 

3. Constraint

1) n == score.length

2) 1 <= n <= 10^4

3) 0 <= score[i] <= 10^6

4) score에 중복되는 점수는 없다.

 

4. Example

Input: score = [5,4,3,2,1] -> Output: ["Gold Medal","Silver Medal","Bronze Medal","4","5"]

 

5. Code

1) 첫 코드(2023/05/23)

class Solution {
    public String[] findRelativeRanks(int[] score) {
        String[] ans = new String[score.length];
        List<Integer> list = new ArrayList<>();
        for(int i : score)
            list.add(i);
        Arrays.sort(score);
        for(int i=score.length-1 ; i>=0 ; i--){
            int rank = score.length-i;
            if(rank>3)
                ans[list.indexOf(score[i])] = String.valueOf(rank);
            else if(rank==1)
                ans[list.indexOf(score[i])] = "Gold Medal";
            else if(rank==2)
                ans[list.indexOf(score[i])] = "Silver Medal";
            else
                ans[list.indexOf(score[i])] = "Bronze Medal";
        }
        return ans;
    }
}

- 시간도 공간도 beat%가 다 5%인데, 당장은 생각이 나지 않는다.