노아

[프로그래머스] 특정 세대의 대장균 찾기 본문

알고리즘/SQL

[프로그래머스] 특정 세대의 대장균 찾기

Noaahhh 2024. 9. 20. 22:52

 

Question

 

3세대의 대장균의 ID(ID) 를 출력하는 SQL 문을 작성해주세요. 이때 결과는 대장균의 ID 에 대해 오름차순 정렬해주세요.

 

Pseudocode

 

 

  1. 테이블 간 조인:
    • ecoli_data 테이블을 세 번 각각 e1, e2, e3로 참조하여 자기 자신과 조인합니다.
    • e1은 부모 개체, e2는 e1의 자식 개체, e3는 e2의 자식 개체로 설정됩니다.
  2. 조건 설정:
    • e1.parent_id IS NULL 조건을 사용하여 e1이 부모가 없는 최상위 개체인 경우만 조회합니다.
  3. 결과 반환:
    • e3.id 값을 반환하여 e1 → e2 → e3의 트리 구조에서 손자 개체에 해당하는 개체의 ID만을 출력합니다.

 

 

 

Code

 

SELECT e3.id
FROM ecoli_data e1
         JOIN ecoli_data e2
              ON e1.id = e2.parent_id
         JOIN ecoli_data e3
              ON e2.id = e3.parent_id
WHERE e1.parent_id IS NULL