tak's data blog
[SQL] HackerRank - Challenges 본문
출처: https://www.hackerrank.com/challenges/challenges/problem?isFullScreen=truen
가장 최근 프로그래머스로 코딩테스트를 보았을 때, 비슷한 문제유형이 나왔습니다. 해커랭크를 공부한 보람이 있었네요
with문을 이용해 숫자를 count하는 테이블을 생성하고 이를 활용하는 문제풀이형식을 사용하였습니다.
문제:
Julia가 학생들에게 코딩 문제를 만들라고 지시하였습니다. hacker_id, name, 학생이 만든 총 문제 횟수를 출력. 내림차순으로 총 문제 횟수별 결과를 정렬합니다. 둘 이상의 학생이 동일한 수의 문제를 만든 경우 hacker_id를 기준으로 결과를 정렬합니다. 두 명 이상의 학생이 동일한 수의 과제를 만들고, 그 횟수가 생성된 최대 과제 수보다 적으면, 해당 학생을 결과에서 제외하고 출력합니다.
# with문을 통해 문제를 만든 횟수 테이블을 따로 생성합니다.
with counter as (
select h.hacker_id as id, h.name as name, count(h.hacker_id) as cnt
from challenges as c
inner join hackers as h on c.hacker_id = h.hacker_id
group by h.hacker_id, h.name)
# with문을 통해 만들어진 counter테이블을 기준으로 조건에 맞춰 작성합니다.
select id, name, cnt
from counter
where cnt = (select max(cnt) from counter)
or cnt in (select cnt from counter group by cnt having count(cnt) = 1)
order by cnt desc, id
'SQL' 카테고리의 다른 글
[SQL] HackerRank - Ollivander's Inventory (0) | 2022.06.05 |
---|---|
[SQL] HackerRank - New Companies (0) | 2022.04.03 |
[SQL] HackerRank - Contest Leaderboard (1) | 2022.02.12 |
[SQL] HackerRank - The Report (1) | 2022.02.11 |
Python SQL 연동 (0) | 2021.04.12 |