728x90
반응형
[level 4] FrontEnd 개발자 찾기 - 276035
[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/276035)
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr

1️⃣ 문제 정의
DEVELOPERS 테이블에서 Front End 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.
2️⃣ 문제 조건
- SKILLCODES : CODE 조회
- DEVELOPERS : SKILL_CODE 조회
- 어떤 개발자의 SKILL_CODE가 400 (=b'110010000')이라면, 이는 SKILLCODES 테이블에서 CODE가 256 (=b'100000000'), 128 (=b'10000000'), 16 (=b'10000') 에 해당하는 스킬을 가졌다는 것을 의미
3️⃣ 테이블
SKILLCODES

DEVELOPERS

4️⃣ 풀이 과정
1) DEVELOPERS 테이블의 SKILL_CODE를 보면 Front End 기술만 조합으로 뽑아낼 수 있는 숫자가 아니다. ID가 D162인 row를 보면 SKILL_CODE가 8452인데, 이는 8192 + 256 + 4로, Vue + Python + C++이다. 즉, 정수형으로 나타난 수들을 비트로 변환하여 문제를 해결한다.
-- SKILL_CODE와 CODE를 비트 합연산 시켰을 때 1보다 크다면, SKILL_CODE는 CODE를 포함한다는 뜻이다. --
-- 400 = b'110010000 & 16 = b'10000 -> 000010000 > 0 --
S.CODE & D.SKILL_CODE > 0
2) ID, EMAIL, FIRST_NAME, LAST_NAME이 중복해서 조회되므로 GROUP BY 한다.
GROUP BY ID, EMAIL, FIRST_NAME, LAST_NAME
5️⃣ 최종 제출 코드
SELECT D.ID, D.EMAIL, D.FIRST_NAME, D.LAST_NAME
FROM SKILLCODES S, DEVELOPERS D
WHERE S.CODE & D.SKILL_CODE > 0 AND S.CATEGORY LIKE 'F%'
GROUP BY ID, EMAIL, FIRST_NAME, LAST_NAME
ORDER BY ID728x90
반응형
'Coding-Test > 프로그래머스' 카테고리의 다른 글
| [Python] 구명보트 (0) | 2026.03.22 |
|---|---|
| [Python] 조이스틱 (0) | 2026.03.21 |
| [SQL] 상품을 구매한 회원 비율 구하기 (0) | 2026.03.05 |
| [Python] 에어컨 (0) | 2026.03.05 |
| [Python] 비밀 코드 해독 (0) | 2026.03.04 |