본문 바로가기
문제풀이/SQL 문제풀이

프로그래머스 / SQL - 조건에 맞는 개발자 찾기(비트연산자)

by yj-data 2025. 10. 9.
DEVELOPERS 테이블에서 Python이나 C# 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPERS
WHERE SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE NAME IN ('Python', 'C#'))
ORDER BY ID ASC;

SKILL_CODE & 를 했을때, PYTHON, C#에 해당하는 비트가 있다면, 그대로 SKILL_CODE가 나올것이므로, 위와 같이 WHERE 절을 작성함.

 


비트연산자란?

 

비트 AND (&): 두 비트가 모두 1일 때만 결과 비트가 1이 됩니다. 
비트 OR (|): 두 비트 중 하나라도 1이면 결과 비트가 1이 됩니다. 
비트 XOR (^): 두 비트가 서로 다를 때만 결과 비트가 1이 됩니다. 
비트 NOT (~): 피연산자의 각 비트 값을 반전시킵니다.

 

예시

a = 4, b=6  --- 4(2진수 0100) 6(2진수 0110)

a&b = 0100 = 4 가 됨.

a,b를 2진수로 변화할것도 없이, a&b 는 알아서 비트화되어 답이 나옴.