프로그래머스/[SQL] SELECT

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

믕비 2024. 11. 11. 17:09
반응형

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

 

프로그래머스

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

programmers.co.kr

 

[풀이과정]

비트연산

 

1) 1 << (2-1)은   10

2) 1 << (1-1)은     1

3) 1 << (3-1)은 100

 

&연산 -> 1과 1일 때만 1을 반환하기 때문에

-> 0이면 해당 형질이 없다는 뜻 & 0이 아니면 해당 형질이 있다는 뜻

 

반환은 2진수 값으로 되기 때문에 0이 아니다라고 설정을 해야 제대로 실행됨.

 

[코드]

SELECT COUNT(ID) AS COUNT
FROM ECOLI_DATA
WHERE (GENOTYPE & (1 << (2 - 1))) = 0         -- 2번 형질이 없는 개체
  AND ((GENOTYPE & (1 << (1 - 1))) != 0        -- 1번 형질을 보유하거나
       OR (GENOTYPE & (1 << (3 - 1))) != 0);   -- 3번 형질을 보유한 개체
반응형