프로그래머스/My SQL

💫특정 형질을 가지는 대장균 찾기

싱싱한복초이 2024. 10. 30. 17:52

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

 

프로그래머스

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

programmers.co.kr

[문제]

2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수(COUNT)를 출력하는 SQL 문을 작성해주세요. 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함합니다.

 

[나의 풀이]

SELECT COUNT(ID) AS COUNT
FROM ECOLI_DATA
WHERE GENOTYPE & 2 = 0
    AND (GENOTYPE & 4 >= 1 OR GENOTYPE & 1 >= 1);

Q. "GENOTYPE & 4 >= 1은 GENOTYPE의 세 번째 비트(오른쪽에서 세 번째 비트)가 켜져 있는지 확인합니다." 이 부분이 잘 이해가 안돼. GENOTYPE이 4인 경우 GENOTYPE & 4의 결과가 0100인데 이게 어떻게 1보다 크거나 같다는거야?

 

[참고 링크]

https://velog.io/@hyejin4169/%EC%A0%95%EC%88%98%EB%A5%BC-%EB%B9%84%ED%8A%B8%EB%A1%9C-%ED%91%9C%ED%98%84%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95

 

정수를 비트로 표현하는 방법

0부터 9까지의 숫자로 수를 표현하는 방법으로, 우리가 일상 생활에서 수를 나타낼 때 흔히 사용하는 방법이다.수의 값은 각 상자에 든 내용물의 값 \* 상자의 값을 곱한 것을 모두 더하여 결정된

velog.io

https://velog.io/@sobit/%EB%B9%84%ED%8A%B8-%EC%97%B0%EC%82%B0%EC%9E%90bitwise-operator-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%AC%B8%EC%A0%9C%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%B4-%EB%B3%B4%EC%9E%90

 

비트 연산자(bitwise operator), 프로그래머스 문제로 이해해 보자.

📌비트 연산자란? SQL 기초 문법만 배운 상태에서 프로그래머스 SQL 고득점 Kit를 풀던 중 처음 보는 연산자를 발견했다. 평소 &(AND)라고 불리는 기호인데, SQL에서는 AND 연산에 사용되고, '비트 연

velog.io