728x90
< 링크 >
여기를 클릭하세요 (프로그래머스 고득점 Kit 106문제 모음)
여기를 클릭하세요 (29. 특정 형질을 가지는 대장균 찾기)
< 문제 >
2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수(COUNT)를 출력하는 SQL 문을 작성해주세요. 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함합니다.
< 내가 작성한 코드 >
SELECT COUNT(*) COUNT
FROM ECOLI_DATA
WHERE GENOTYPE & 2 != 2
AND (GENOTYPE & 1 = 1
OR GENOTYPE & 4 = 4);
< 풀이 >
'2번 형질을 보유한다'는 말이 무슨 뜻인지 몰라서 처음엔 쉽지 않았는데,
그러다 2진수로 바꿔서 결과가 2가 아니면 '보유하지 않는다'는 의미로 생각할 수 있었다.
그래서 C언어에서 알게된 비트연산자 &를 생각했다.
쿼리의 where 조건문에서 & 2를 해봤다.
(개인적으로 SQL에 비트연산자를 쓸 수 있다는걸 이번에 처음 알았다.)
'IT > 프로그래머스 SQL 문제 풀어보기' 카테고리의 다른 글
| [SQL - SELECT] 30. 부모의 형질을 모두 가지는 대장균 찾기 (0) | 2026.01.11 |
|---|---|
| [SQL - SELECT] 28. 대장균의 크기에 따라 분류하기1 (0) | 2026.01.11 |
| [SQL - SELECT] 27. 대장균들의 자식의 수 구하기 (0) | 2026.01.11 |
| [SQL - SELECT] 26. 특정 물고기를 잡은 총 수 구하기 (1) | 2026.01.11 |
| [SQL - SELECT] 25. 가장 큰 물고기 10마리 구하기 (0) | 2026.01.11 |