반응형

문제 출처 :


https://leetcode.com/problems/rank-scores/



알고리즘 분석 :


문제 해결에 필요한 사항

1. Subquery


우선 Score와 Rank를 SELECT해야하는데 Rank는 subquery로 구해준다.


Score을 카운트 할 것인데 이때 s2.score >= s1.score인것만 구해준다.


즉, 예제에서 3.85보다 크거나 같은 것은 4.00 두개뿐이다


따라서 3.85의 rank는 2가 되는 것이다.


이런 식으로 subquery를 만들어주고 score 기준 내림차순 정렬해주면 정답을 구할 수 잇다.






소스 코드 : 


1
2
3
4
5
6
7
SELECT Score, (
    SELECT COUNT(DISTINCT Score)
    FROM Scores AS S2
    WHERE S2.Score >= S1.score
) AS Rank
FROM Scores AS S1
ORDER BY Score DESC
cs

반응형