프로그래머스/My SQL

💫조건에 맞는 개발자 찾기

싱싱한복초이 2024. 11. 11. 14:57

https://school.programmers.co.kr/learn/courses/30/lessons/276034

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

[문제]

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

결과는 ID를 기준으로 오름차순 정렬해 주세요.

 

[나의 풀이]

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPERS
WHERE SKILL_CODE & (SELECT SUM(CODE)
                    FROM SKILLCODES
                    WHERE NAME IN ('C#', 'PYTHON'))
ORDER BY ID;

 

-참고

https://velog.io/@sobit/%EB%B9%84%ED%8A%B8-%EC%97%B0%EC%82%B0%EC%9E%90bitwise-operator-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%AC%B8%EC%A0%9C%EB%A1%9C-%EC%9D%B4%ED%95%B4%ED%95%B4-%EB%B3%B4%EC%9E%90

 

비트 연산자(bitwise operator), 프로그래머스 문제로 이해해 보자.

📌비트 연산자란? SQL 기초 문법만 배운 상태에서 프로그래머스 SQL 고득점 Kit를 풀던 중 처음 보는 연산자를 발견했다. 평소 &(AND)라고 불리는 기호인데, SQL에서는 AND 연산에 사용되고, '비트 연

velog.io

 

예시)

 

[다른 풀이]

SELECT DISTINCT a.ID, a.EMAIL, a.FIRST_NAME, a.LAST_NAME
FROM DEVELOPERS a, SKILLCODES b
WHERE 
    (a.SKILL_CODE & b.CODE) > 0
    AND b.NAME IN ("Python", "C#")
ORDER BY a.ID;

-참고

https://velog.io/@cku7808/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4MySQL-%EC%A1%B0%EA%B1%B4%EC%97%90-%EB%A7%9E%EB%8A%94-%EA%B0%9C%EB%B0%9C%EC%9E%90-%EC%B0%BE%EA%B8%B0

 

[프로그래머스/MY SQL] 조건에 맞는 개발자 찾기

SKILLCODES 테이블은 개발자들이 사용하는 프로그래밍 언어에 대한 정보를 담은 테이블입니다. SKILLCODES 테이블의 구조는 다음과 같으며, NAME, CATEGORY, CODE는 각각 스킬의 이름, 스킬의 범주, 스킬의

velog.io

 

SELECT ID, EMAIL, FIRST_NAME, LAST_NAME
FROM DEVELOPERS
WHERE
    SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME='Python')
    OR SKILL_CODE & (SELECT CODE FROM SKILLCODES WHERE NAME='C#')
ORDER BY ID;

-참고

https://wing-beat.tistory.com/140

 

[프로그래머스 코딩테스트 연습 SQL - 14] 조건에 맞는 개발자 찾기 (MySQL) | SQL BIT 연산

처음에 틀렸던 코드:SELECT ID, EMAIL, FIRST_NAME, LAST_NAMEFROM DEVELOPERSWHERE (BIN(SKILL_CODE) LIKE '%1__________') OR (BIN(SKILL_CODE) LIKE '%1________')ORDER BY ID;처음에는 SKILLCODES 테이블에서 PYTHON, C#의 BIN을 확인한 후 수제

wing-beat.tistory.com