본문 바로가기

[LeetCode] 1050. Actors and Directors Who Cooperated At Least Three Times

by qwee0328 2025. 3. 4.

📝 1050. Actors and Directors Who Cooperated At Least Three Times

🔹 최소 3번 이상 협력한 배우와 감독

배우가 감독과 최소 3번 이상 협력한 모든 쌍(actor_id, Director_id)을 찾는 솔루션을 작성하세요.
어떤 순서로든 결과 테이블을 반환합니다.

 

 

📝 문제 설명

이 문제는 최소 3번 이상 협력한 배우와 감독(Actors and Directors Who Cooperated At Least Three Times) 문제로, 특정 배우와 감독이 함께 작업한 횟수가 3번 이상인 쌍을 찾는 작업을 수행합니다.

배우와 감독의 협력 관계를 나타내는 ActorDirector 테이블을 사용하여 이를 해결해야 합니다.

 

📊 테이블 구조

ActorDirector 테이블

Column Name Type
actor_id int
director_id int
timestamp int

 

 

💡 SQL 문제 해결 방법

  1. GROUP BY 문을 사용하여 actor_iddirector_id의 조합별로 데이터를 그룹화합니다.
  2. COUNT(0) 함수를 사용하여 각 그룹의 협력 횟수를 집계합니다.
  3. HAVING 절을 사용하여 협력 횟수가 3번 이상인 경우만 필터링합니다.

 

728x90

 

🖥️ SQL 풀이

  SELECT actor_id
       , director_id
    FROM ActorDirector
GROUP BY actor_id
       , director_id
  HAVING COUNT(0) >= 3

 

 

🔍 쿼리 분석

  • GROUP BY: actor_iddirector_id 기준으로 데이터를 그룹화합니다.
  • COUNT(0): 각 그룹에 대한 행 개수를 반환하여 협력 횟수를 계산합니다.
  • HAVING: 협력 횟수가 3번 이상인 쌍만 결과로 반환합니다.

 

📌 실행 예제

📊 입력 데이터

ActorDirector 테이블

actor_id director_id timestamp
1 1 0
1 1 1
1 1 2
1 2 3
1 2 4
2 1 5
2 1 6

 

쿼리 실행 결과

actor_id director_id
1 1
  • 배우 1과 감독 1은 3번 협력했으므로 결과에 포함됩니다.
  • 배우 1와 감독 2는 2번만 협력했으므로 결과에 포함되지 않습니다.
  • 배우 2과 감독 1는 2번만 협력했으므로 결과에 포함되지 않습니다.

 

🎯 결론

이 문제는 GROUP BY와 HAVING 절을 활용하여 데이터를 그룹화하고 조건에 맞는 데이터를 필터링하는 방법을 연습할 수 있습니다. 협력 횟수를 기반으로 특정 관계를 추출하는 방식은 영화, 음악, 비즈니스 협력 관계 데이터 분석에서 유용하게 사용될 수 있습니다.

 

 

더 많은 SQL 문제 풀이를 보고 싶다면 LeetCode SQL 문제 모음을 확인해 보세요! 🚀

728x90
반응형