프로그래머스 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 연산전에 조건 필터링

😉 리뷰