Programmers Lv.2
- 부모의 형질을 모두 가지는 대장균찾기
👉 문제 바로가기(프로그래머스)
-- 부모의 형질을 모두 보유한 대장균의 ID / 대장균의 형질 / 부모 대장균의 형질
SELECT t2.ID, t2.GENOTYPE, t1.GENOTYPE as PARENT_GENOTYPE
FROM ECOLI_DATA t1, ECOLI_DATA t2
WHERE t1.ID = t2.PARENT_ID AND
t2.GENOTYPE & t1.GENOTYPE = t1.GENOTYPE
ORDER BY t2.ID
[ 논리 과정 ]
- Self Join을 통해 자식 대장균 정보 찾기
- 자식 대장균의 형질이 부모 대장균 형질을 모두 포함하는지 확인
[ 문제 상황 ]
- 대장균 형질은 십진수이나 이진수를 통해 표현하여 해당 대장균이 가지는 형질을 확인할 수 있다.
- 이진수를 통해 파악할 수 있는 부모 대장균 형질과 자식 대장균 형질을 비교해야한다.
[ 해결 ]
- 비트 연산자
&
를 통해 해결자식 대장균 형질
&부모 대장균 형질
=부모 대장균 형질
[ 회고 ]
- 비트 연산자를 통해 십진수를 비교해 해당 값의 이진수 값을 비교할 수 있다.
- & (AND): 두 비트가 모두 1일 때 1, 그렇지 않으면 0
- | (OR): 두 비트 중 하나라도 1일 때 1, 그렇지 않으면 0
- ^ (XOR): 두 비트가 다를 때 1, 같을 때 0
- ~ (NOT): 각 비트를 반전 (0을 1로, 1을 0으로)
'DA Study > TIL' 카테고리의 다른 글
[TIL] 조건 비교를 위한 IN / EXISTS 구문 활용(서브쿼리) # MySQL # SQL (2) | 2025.01.03 |
---|---|
[TIL] 리스트 컴프리헨션(List Comprehension) #python3 #FConline (0) | 2025.01.02 |
[TIL] SUM함수, CASE WHEN ~ THEN 구문 활용 #SQL #SQLite #solvesql (1) | 2024.12.30 |
[TIL] PERCENT_RANK() OVER() 윈도우 함수 활용 # MYSQL (1) | 2024.12.28 |
[TIL] DATEDIFF(), LEFT OUTER JOIN # MYSQL (2) | 2024.12.27 |