[코딩테스트] 프로그래머스 - 언어별 개발자 분류하기 (Mysql)

jdev·2024년 7월 15일
0

Coding-Test

목록 보기
24/29

⚾ 설명문

레벨: 4
언어: Mysql

🔥 느낀점

해당 문제는 비트마스크를 사용한 문제인데,
비트연산자를 이해하고 있는 상태면 풀수 있는 문제라고 생각합니다
A등급은 프론트엔드에 해당되는 스킬인 비트를 가지고, 파이썬 스킬을 가지면 되는 문제라서
일단 비트연산자인 & 사용하여 관련되 비트를 포함하고있으면 1이상 나오기때문에 True가 되고 Python 스킬을 가진지 &로 비교하여 True를 구하고
나머지 B,C 등급도 이와 똑같이 비교해서 등급을 구하면됩니다

⚽ 내가 작성한 코드

SELECT 
    CASE WHEN SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE CATEGORY = 'Front End')
            && SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'Python') THEN 'A'
        WHEN SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME = 'C#') THEN 'B'
        WHEN SKILL_CODE & (SELECT SUM(CODE) FROM SKILLCODES WHERE CATEGORY = 'Front End') THEN 'C'
    END GRADE
    , ID
    , EMAIL
  FROM DEVELOPERS
 HAVING GRADE IS NOT NULL
 ORDER BY GRADE, ID

0개의 댓글