개발로그필름

[SQL] 특정 형질을 가지는 대장균 찾기 본문

coding test/프로그래머스

[SQL] 특정 형질을 가지는 대장균 찾기

yuullog 2025. 6. 30. 19:33
728x90
반응형
SMALL
반응형

 

 

 

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

 

프로그래머스

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

programmers.co.kr

 

 

정답 쿼리
SELECT COUNT(*) AS COUNT
FROM ECOLI_DATA
WHERE (GENOTYPE & 2) = 0
  AND (GENOTYPE & 5) > 0;

 

노트
2번 형질은 갖고 있지 않으면서, 1번 또는 3번 형질을 갖고 있는 대장균 개체의 수를 구하는 것이 핵심!
    • 1번 형질이 포함된다면 2의 0승 -> 1
    • 2번 형질이 포함된다면 2의 1승 -> 2  ..... 이렇게 나타낼 수 있는데
    • 문제에서 2번 형질은 갖고 있지 않으니까 
      • (GENOTYPE & 2) = 0
      • 2와 비트 연산을 했을 때 0이 나와야 한다
    • 1번 또는 3번 형질은 가지고 있으려면 
      • (GENOTYPE & 5) > 0
      • 5를 이진수로 바꾸면 101 -> 1번과 3번 위치에 있다는 뜻
      • GENOTYPE & 5 = 1 가 안되는 이유는 이진수로 001을 뜻하고, 이건 1번 형질만 있고 3번은 없는 경우만 선택하게 된다
      • 따라서 부등호 > 0 로 해야 한다

 

 

반응형
LIST
Comments