코딩 테스트/SQL

[프로그래머스 - LEVEL 5] 멸종위기의 대장균 찾기

macbook2 2026. 6. 26. 13:11

https://school.programmers.co.kr/learn/courses/30/lessons/301651

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


문제

각 세대별 자식이 없는 개체의 수(COUNT)와 세대(GENERATION)를 출력하는 SQL문을 작성해주세요. 이때 결과는 세대에 대해 오름차순 정렬해주세요. 단, 모든 세대에는 자식이 없는 개체가 적어도 1개체는 존재합니다.

 

풀이

-- 코드를 작성해주세요

WITH RECURSIVE PARENT AS (
    SELECT ID, PARENT_ID, 0 AS DEPTH
      FROM ECOLI_DATA
     WHERE PARENT_ID IS NULL

    UNION ALL

    SELECT ED.ID, ED.PARENT_ID, P.DEPTH + 1 DEPTH
      FROM PARENT P
      LEFT OUTER JOIN ECOLI_DATA ED
        ON P.ID = ED.PARENT_ID
     WHERE P.ID IS NOT NULL
)   
SELECT 
       COUNT(1) AS COUNT, DEPTH AS GENERATION
  FROM PARENT
 WHERE ID IS NULL
 GROUP BY ID, DEPTH
 ORDER BY DEPTH