개발로그필름

[프로그래머스/SQL] 부모의 형질을 모두 가지는 대장균 찾기 본문

coding test/프로그래머스

[프로그래머스/SQL] 부모의 형질을 모두 가지는 대장균 찾기

yuullog 2025. 6. 2. 19:56
728x90
반응형
SMALL

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

 

프로그래머스

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

programmers.co.kr

 

 

 

 

 

구해야하는 것
  • 부모의 형질을 모두 보유한 대장균의 ID(ID), 대장균의 형질(GENOTYPE), 부모 대장균의 형질(PARENT_GENOTYPE)을 출력하는 SQL문 작성
  • 결과는 ID에 대해 오름차순 정렬

 

SQL 쿼리문
/*
ID: 대장균 개체 ID
PARENT_ID: 부모 개체 ID
SIZE_OF_COLONY: 개체 크기
DIFFERENTIATION_DATE: 분화되어 나온 날짜
GENOTYPE: 개체의 형질
*/

SELECT c.ID, c.GENOTYPE, p.GENOTYPE AS PARENT_GENOTYPE
from ECOLI_DATA c
JOIN ECOLI_DATA p ON c.PARENT_ID = p.ID
WHERE (c.GENOTYPE & p.GENOTYPE) = p.GENOTYPE  
order by c.ID ;

 

풀이 방법

1. 대장균 개체 ID의 개체의 형질이 부모 개체 ID에 있어야 한다
-> ECOLI_DATA 테이블을 두번 JOIN ( c.PARENT_ID =  p.ID )

2. 개체의 형질을 2진수로 나타내 서로 & 해서 1 & 1 일 경우만 필터링

3. c.ID 기준으로 오름차순 정렬

반응형
LIST
Comments