Leetcode - 601 (Hard)

Pocketopi·2025년 5월 7일

[MYSQL] Leetcode

목록 보기
28/34
post-thumbnail

🔔 문제

3행 이상 연속으로 100명 이상의 사람이 방문한 행들을 뽑아라.
[Human Traffic of Stadium]

🎯 풀이 전략

🔑 핵심 포인트

  1. 100명 이상 방문하면서, 3행 이상 연속으로 존재해야 하므로, 2번 SELF JOIN을 이용하여 조건을 만족하는 행 출력.
  2. A,B,C 따로 존재하는 열들을 하나로 묶어주기 위해 UNION이용
    ❗ UNION을 이용하면 중복을 알아서 제거해준다.

💻 정답 쿼리 예시

SELECT A.ID, A.VISIT_DATE, A.PEOPLE
FROM STADIUM A JOIN STADIUM B JOIN STADIUM C
ON A.ID = B.ID + 1 AND B.ID = C.ID + 1
WHERE A.PEOPLE >= 100 AND B.PEOPLE >= 100 AND C.PEOPLE >= 100

UNION

SELECT B.ID, B.VISIT_DATE, B.PEOPLE
FROM STADIUM A JOIN STADIUM B JOIN STADIUM C
ON A.ID = B.ID + 1 AND B.ID = C.ID + 1
WHERE A.PEOPLE >= 100 AND B.PEOPLE >= 100 AND C.PEOPLE >= 100

UNION

SELECT C.ID, C.VISIT_DATE, C.PEOPLE
FROM STADIUM A JOIN STADIUM B JOIN STADIUM C
ON A.ID = B.ID + 1 AND B.ID = C.ID + 1
WHERE A.PEOPLE >= 100 AND B.PEOPLE >= 100 AND C.PEOPLE >= 100

ORDER BY ID

💡 핵심문법 및 배운 점

  • SELF JOIN
  • UNION

⏱️ 걸린 시간: 15분 22초

profile
통계학/컴퓨터공학 전공 4학년 학생 DA뿌수기 일기장

0개의 댓글