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;'코딩테스트' 카테고리의 다른 글
| [26.03.11 코테(MySQL/Oracle)]-특정 기간동안 대여 가능한 자동차들의 대여비용 구하기 (0) | 2026.03.11 |
|---|---|
| [26.03.10 코테(MySQL)]-연간 평가점수에 해당하는 평가 등급 및 성과금 조회하기 (0) | 2026.03.10 |
| [26.03.05 코테(MySQL)]-분기별 분화된 대장균의 개체 수 구하기 (0) | 2026.03.05 |
| [26.03.04 코테(MySQL)]-특정 조건을 만족하는 물고기별 수와 최대 길이 구하기 (0) | 2026.03.04 |
| [26.03.03 코테(MySQL)]-특정 형질을 가지는 대장균 찾기 (0) | 2026.03.03 |