데이터베이스/문제 풀이

[프로그래머스][MySQL] 특정 형질을 가지는 대장균 찾기

수수다 2026. 7. 12. 17:08

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

 

프로그래머스

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

programmers.co.kr


형질은 각 비트로 표현된다.

  • 1번 형질: 1 → 0001
  • 2번 형질: 2 → 0010
  • 3번 형질: 4 → 0100

& 연산은 두 값에서 같은 위치의 비트가 모두 1일 때만 해당 비트를 남긴다. -> 0001 & 0001 = 0001 , 0001 & 1110 = 0000

따라서 (genotype & 2) = 2이면 2번 형질을 가진 것이고, (genotype & 2) != 2이면 2번 형질이 없는 것이다.

같은 방식으로 genotype & 1은 1번 형질, genotype & 4는 3번 형질을 확인한다.

select count(*) as count
from ecoli_data
where (genotype & 2) != 2 and ((genotype & 1) = 1 or (genotype & 4) = 4)