코딩 테스트/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 를 사용함