SQL Coding Test/[Programmers]

[Programmers] 조건에 맞는 개발자 찾기 (Lv.2)

duswn1204 2026. 5. 24. 17:57

🔗 문제 link : https://school.programmers.co.kr/learn/courses/30/lessons/276034


🖥️ 문제 풀이

SELECT DISTINCT
    D.ID,
    D.EMAIL,
    D.FIRST_NAME,
    D.LAST_NAME
FROM SKILLCODES S
JOIN DEVELOPERS D
    ON S.CODE & D.SKILL_CODE = S.CODE
WHERE S.NAME IN ('Python', 'C#')
ORDER BY D.ID ASC;

💡 문제 해결

S.CODE & D.SKILL_CODE = S.CODE 뜻
SKILL_CODE는 여러 스킬을 더한 값으로 저장됨

예:

Python = 256  → 100000000
Java   = 128  → 010000000
JS     = 16   → 000010000
 

개발자 스킬:

400 = 256 + 128 + 16
    = 110010000
 

→ Python + Java + JavaScript 보유


& 연산자 (비트 AND)
: 두 비트가 둘 다 1일 때만 1 반환

예:

400 (110010000)
256 (100000000)
---------------- &
    100000000
 

결과:

256
 

즉:

400 & 256 = 256
 

→ Python 스킬 있음