IT/SQL 테스트

[SELECT] 특정 형질을 가지는 대장균 찾기 (MySQL)

자연산 금붕어 2025. 2. 5. 09:23

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

 

프로그래머스

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

programmers.co.kr

 

- 문제 : 

2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수(COUNT)를 출력하는 SQL 문을 작성해주세요. 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함합니다.

 

- 풀이 :

-- ECOLI_DATA : ID, PARENT_ID, SIZE_OF_COLONY, DIFFERENTIATION_DATE, GENOTYPE

SELECT COUNT(*) AS COUNT
FROM ECOLI_DATA
WHERE (GENOTYPE & 2) = 0  
    AND ((GENOTYPE & 1) > 0 
    OR (GENOTYPE & 4) > 0);
  • & 비트 연산자를 사용해 1번 형질과 3번 형질을 보유하는 경우를 찾음
  • & 4가 3번 형질인 이유는 이진수로 0001 -> 1번형질 0010 -> 2번형질 0100 -> 3번형질 이기 때문
반응형