개발로그필름
[SQL] 특정 형질을 가지는 대장균 찾기 본문
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
'coding test > 프로그래머스' 카테고리의 다른 글
| [SQL] 특정 세대의 대장균 찾기 (0) | 2025.06.29 |
|---|---|
| [SQL] 오프라인/온라인 판매 데이터 통합하기 (0) | 2025.06.29 |
| [SQL] 그룹별 조건에 맞는 식당 목록 출력하기 (0) | 2025.06.28 |
| [SQL] 대장균들의 자식의 수 구하기 (0) | 2025.06.28 |
| [SQL] 연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (0) | 2025.06.27 |
Comments