코딩 테스트/SQL
[프로그래머스 - LEVEL 2] 조건에 맞는 개발자 찾기 ⛔️
macbook2
2026. 2. 12. 17:14
https://school.programmers.co.kr/learn/courses/30/lessons/276034
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제
DEVELOPERS 테이블에서 Python이나 C# 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.
주의
예를 들어 어떤 개발자의 SKILL_CODE가 400 (=b'110010000')이라면, 이는 SKILLCODES 테이블에서 CODE가 256 (=b'100000000'), 128 (=b'10000000'), 16 (=b'10000') 에 해당하는 스킬을 가졌다는 것을 의미합니다.
풀이
-- 코드를 작성해주세요
SELECT DISTINCT
d.id,
d.email,
d.first_name,
d.last_name
FROM developers d
JOIN skillcodes s
ON (s.code & d.skill_code) > 0
WHERE s.name IN ('Python', 'C#')
ORDER BY d.id;
s.code 와 b.skill_code에 교집합인 '&'을 사용, 그 결과가 0보다 클때 여러 기술 스택을 가지고 있음
그 중 Python 과 C# 가 있어야 하고 한 개발자가 여러 스택을 가질 수 있으니 DISTINCT 를 사용함