반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 캡슐화
- CPU
- 프로그래머스
- userdetailsservice 설정
- 객체지향
- 멀티태스킹
- 바탕화면 정리 자바
- 멀티프로세싱
- 혼공얄코
- 다형성
- hackerrank
- 자바의정석
- spring security 설정
- 달리기 경주 자바
- 개인정보 수집 유효기간 자바
- SQL Mapper
- 오블완
- 티스토리챌린지
- 쿠키
- java
- spring security
- 오버로딩
- 입출력
- 오버라이딩
- 로그인 핸들러 구현
- 자바의 정석
- spring security 커스텀
- over()
- authenticationprovider 설정
- 리눅스
Archives
- Today
- Total
쉽게 쉽게
[HackerRank] Challenges 본문
반응형
1. 문제
해석
- hacker_id, 이름 및 각 학생이 낸 총 과제 수 출력
- 총 과제 수를 기준으로 내림차순으로 정렬. 단 한 명 이상의 학생이 동일한 수의 과제를 낸 경우 hacker_id 별로 결과를 정렬
- 한 명 이상의 학생이 동일한 수의 도전 과제를 냈을 때, 그 수가 최대 도전 횟수면 결과에 포함
- 최대 도전 횟수보다 적다면 그 학생들은 결과에서 제외
2. 풀이
1. 테이블을 조인하여 id, 이름, 과제 수 출력
SELECT h.hacker_id, h.name , count(*) cnt
FROM Hackers h
JOIN Challenges c ON h.hacker_id = c.hacker_id
GROUP BY h.hacker_id, name;
2. 정렬
SELECT h.hacker_id, h.name , count(*) cnt
FROM Hackers h
JOIN Challenges c ON h.hacker_id = c.hacker_id
GROUP BY h.hacker_id, name
ORDER BY cnt DESC , h.hacker_id;
3. 최대 도전 횟수 구하기
SELECT max(num.cnt)
FROM(
SELECT c.hacker_id , count(*) cnt
FROM Challenges c
GROUP BY c.hacker_id
) num ;
4. 학생이 제출한 도전 횟수가 중복되지 않은 결과 구하기(중복은 최대 도전 횟수를 빼고는 제거되니까)
SELECT num2.cnt , count(*)
FROM(
SELECT c.hacker_id , count(*) cnt
FROM Challenges c
GROUP BY c.hacker_id
) num2
GROUP BY num2.cnt
Having count(*) = 1;
5. 통합
SELECT h.hacker_id, h.name , count(*) num3
FROM Hackers h
JOIN Challenges c ON h.hacker_id = c.hacker_id
GROUP BY h.hacker_id, name
Having num3 = (
SELECT max(num.cnt)
FROM(
SELECT c.hacker_id , count(*) cnt
FROM Challenges c
GROUP BY c.hacker_id
) num)
OR num3 IN(
SELECT num2.cnt
FROM(
SELECT c.hacker_id , count(*) cnt
FROM Challenges c
GROUP BY c.hacker_id
) num2
GROUP BY num2.cnt
Having count(*) = 1 )
ORDER BY num3 DESC , h.hacker_id;
잘못된 내용이 있다면 지적부탁드립니다. 방문해주셔서 감사합니다. |
반응형
'문제풀이 > HakerRank' 카테고리의 다른 글
[HackerRank] The PADS (0) | 2023.07.19 |
---|---|
[HackerRank] Symmetric Pairs (0) | 2023.07.09 |
[HackerRank] Placements (0) | 2023.07.03 |
[HackerRank] Top Competitors (0) | 2023.06.25 |
[HackerRank] The Report (0) | 2023.06.21 |