코딩테스트

[26.03.06 코테(MySQL)]-FrontEnd 개발자 찾기

지니248 2026. 3. 6. 17:27

Lv4. FrontEnd 개발자 찾기 (MySQL)

링크: https://school.programmers.co.kr/learn/courses/30/lessons/276035

 

내가 작성한 코드

SELECT DISTINCT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME 
-- Front End 스킬이 있는 사람 한 명만 보기 위해 중복 제거
FROM DEVELOPERS D
JOIN SKILLCODES S
  ON (D.SKILL_CODE & S.CODE) = S.CODE
  -- AND 연산을 통해 개발자의 SKILL_CODE안에 특정 스킬의 CODE가 포함되어있는지 확인
WHERE S.CATEGORY = 'Front End'
ORDER BY D.ID ASC;

 

새로 배운 코드

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPERS 
-- 서브쿼리
-- CATEGORY에서 Front End인 모든 CODE를 더한다
-- 예) CODE 16 + 2048 = 100010000
-- 합쳐진 숫자는 각 비트 자리가 Front End인 스킬들의 위치를 나타낸다
-- > 0 의미 : 비트 연산의 결과가 참인지 판별하는 기준 -> Front End 개발자가 맞음
WHERE SKILL_CODE & (SELECT SUM(CODE)
                    FROM SKILLCODES
                    WHERE CATEGORY = 'Front End') > 0
ORDER BY ID;