프로그래머스 SQL kit
[SELECT]조건에 맞는 개발자 찾기/비트연산
정호나
2024. 12. 27. 17:42
📕 문제
https://school.programmers.co.kr/learn/courses/30/lessons/276034
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📄 풀이
1. & (and) 연산자로 개발가능한 코드 구하기
-> AND연산 결과가 256 혹은 1024 이면 정답
💻 코드
1. 서브쿼리 이용
# PYTHON(256) , C#(1024)스킬 가진 개발자 조회
# 비트연산 이용
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
2. JOIN 이용 (추천)
SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME
FROM DEVELOPERS D
JOIN SKILLCODES S
ON (S.CODE & D.SKILL_CODE) = S.CODE
WHERE S.NAME IN ('C#', 'Python')
ORDER BY D.ID;
DISTINCT사용 이유
: S.NAME IN ('C#', 'Python')으로 인해, 동일 개발자가 여러 행에 중복 표시될 수 있다.
💻 답안
//
📁 참고자료
☺️ 새로 알게 된 지식
1. 비트연산
2. JOIN ON절에 JOIN 연산전에 조건 필터링
😉 리뷰