언어별 개발자 분류하기
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
- 풀이
- FRONT는 Front End 코드들을 모두 합쳐놓은 코드이기 때문에 = CODE로 못하고 >0 으로 해야함
- 하나라도 가지고 있는지 확인하는 것이기 때문에
- 나머지는 (D.SKILL_CODE & P.CODE) = P.CODE 이런 식으로 해도됨
- 아무것도 안겹치는 애들을 제외하기 위해 WHERE절이 필수로 필요함
- FRONT는 Front End 코드들을 모두 합쳐놓은 코드이기 때문에 = CODE로 못하고 >0 으로 해야함
WITH
FRONT AS (
SELECT SUM(CODE) AS CODE
FROM SKILLCODES
WHERE CATEGORY = 'Front End'
),
PYTHON AS (
SELECT CODE FROM SKILLCODES WHERE NAME = 'Python'
),
CSHARP AS (
SELECT CODE FROM SKILLCODES WHERE NAME = 'C#'
)
SELECT
CASE
WHEN (D.SKILL_CODE & F.CODE) > 0 AND (D.SKILL_CODE & P.CODE) > 0 THEN 'A'
WHEN (D.SKILL_CODE & C.CODE) > 0 THEN 'B'
WHEN (D.SKILL_CODE & F.CODE) > 0 THEN 'C'
END AS GRADE,
D.ID,
D.EMAIL
FROM DEVELOPERS D
JOIN FRONT F ON 1 = 1
JOIN PYTHON P ON 1 = 1
JOIN CSHARP C ON 1 = 1
WHERE (D.SKILL_CODE & F.CODE) > 0 AND (D.SKILL_CODE & P.CODE) > 0 OR
(D.SKILL_CODE & C.CODE) > 0 OR
(D.SKILL_CODE & F.CODE) > 0
ORDER BY GRADE, ID;
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스][product][Counter] 📍주사위 고르기 (1) | 2025.05.18 |
|---|---|
| [프로그래머스][BFS] 거리두기 확인하기 (0) | 2025.05.15 |
| [프로그래머스] 연속 펄스 부분 수열의 합 (1) | 2025.05.13 |
| [프로그래머스][구현] 2개 이하로 다른 비트 (0) | 2025.05.13 |
| [프로그래머스][Heap] 호텔 대실 (0) | 2025.05.02 |