본문 바로가기

코딩테스트 연습/programmers

[프로그래머스] 조건에 맞는 개발자 찾기 - MYSQL

문제

DEVELOPERS 테이블에서 Python이나 C# 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.

 

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

 

처음 문제를 봤을 때는 어떻게 접근해야하나.. 감이 안잡혀서 비트 연산 부분만 슬쩍.. 참고 했다.

비트 연산 했으면 그 다음은 간단함!

 

1. DEVELOPERS 테이블의 SKILL_CODE 를 SKILLCODES 테이블의  CODE와 & 연산 해서, SKILL_CODE 안에 CODE가 포함되는지 확인(2진수 비트 AND 연산으로 확인 가능)

2. SKILLCODE 테이블에서 NAME이 'Python', 'C#' 인 것만 조회

3. ID 순으로 오름차순

 

 

 

이런 문제들도 여러번 접하다 보면 힌트 없이도 풀 수 있는 날이 오겠지 ㅠ