티스토리 뷰

1. 문제

https://www.hackerrank.com/challenges/contest-leaderboard/problem?isFullScreen=true&h_r=next-challenge&h_v=zen 

 

Contest Leaderboard | HackerRank

Generate the contest leaderboard.

www.hackerrank.com

 

2. 풀이

  • 학생별 + 챌린지별로 점수의 최댓값을 구한 후 그 값을 더해줘야 한다.
  • 따라서, 학생별 챌린지별로 점수의 최댓값을 먼저 구한후 hacker 테이블과 join해 점수의 합을 구한다.
  • 점수의 최댓값이 0일 경우 제외하며, 정렬 순서에 유의한다.

 

3. 코드

select h.hacker_id, h.name, sum(score)
from (
    select hacker_id, challenge_id, max(score) as score
    from submissions
    group by hacker_id, challenge_id) t
join hackers as h on t.hacker_id=h.hacker_id
group by h.hacker_id, h.name
having sum(score) > 0
order by sum(score) desc, h.hacker_id;

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함