CS

[SQL풀이] 프로그래머스 - 특정 세대의 대장균 찾기 완벽 풀이

뭉치v 2024. 7. 11.

프로그래머스 SQL 코딩 테스트 문제 풀이를 해보자.

DBMS는 mysql 만 지원한다.

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

문제 : 특정 세대의 대장균 찾기

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

더보기

문제 설명

 

문제 해설

  • 목표(이 문제를 풀면 아래 기능을 활용 할 수 있습니다.)
    • MySQL 에서 recursive 형태 쿼리 작성하기(재귀함수)
  • 풀이방법
 

[SQL풀이] 프로그래머스 - 멸종위기의 대장균 찾기

프로그래머스 멸종위기의 대장균 찾기 SQL 코딩 테스트 문제 풀이를 해보자.제출 사이트를 보니 DBMS는 mysql만 지원된다.문제 : 멸종위기의 대장균 찾기https://school.programmers.co.kr/learn/courses/30/lesson

beforeforget.tistory.com

 

 

MySQL 풀이 

with recursive CTE as (
    -- 최상위 부모 정의
    select id, parent_id, 1 as lvl
      from ecoli_data
     where parent_id is null
    union all
    -- 자식 정의
    select c.id, c.parent_id, p.lvl +1
      from CTE p inner join ecoli_data c on p.id = c.parent_id
)
select ID 
  from CTE 
 where lvl = 3;

 

맺음말

 소스코드에 with 절의 이름을 `CTE`로 하였는데, CTE는 `Common Table Expression`의 약자로 with절을 다른말로 CTE로 통용해서 쓴다. 기존의 뷰나 임시 테이블 등을 간결하게 쿼리 내 표현 할 수 있는 장점이 있다. 저번에 풀어본 멸종위기의 대장균 찾기부터 두번째로 recursive cte 작성을 해봤는데, 비슷한 유형으로 크게 어렵지는 않은 문제였다.

반응형

댓글

💲 추천 글