📕 문제
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 연산전에 조건 필터링
😉 리뷰
'프로그래머스 SQL kit' 카테고리의 다른 글
[GROUP BY] 진료과별 총 예약 횟수 출력하기 (1) | 2024.12.28 |
---|---|
[SELECT] 대장균들의 자식의 수 구하기/ 셀프조인/ COALESCE -> 다시 풀기 연습 (0) | 2024.12.27 |
[SELECT] 업그레이드 된 아이템 구하기 (0) | 2024.12.27 |
[GROUP BY] 특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (1) | 2024.12.24 |
[GROUP BY] 식품분류별 가장 비싼 식품의 정보 조회하기/ (0) | 2024.11.05 |