250x250
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 파이썬 몫
- Len
- 프로그래머스
- GIT
- css
- 파이썬
- html
- where
- python
- sql
- SQL 고득점 Kit
- 아이엠어바텐더
- 파이썬 슬라이싱
- count
- YOLOv5
- 데이터
- 설계
- 단어 공부
- 코딩테스트 연습
- 프로젝트
- 슬라이싱
- Python3
- date_format
- Join
- List Comprehension
- Django
- pcce 기출문제
- 백준
- map
- ORDER BY
Archives
- Today
- Total
nan + nan = 2nan
[프로그래머스/SELECT] 조건에 맞는 개발자 찾기 본문
728x90
코드 입력
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;
해당 문제는 모르겠어서 구글에 찾아본 문제 중 하나다.
SQL을 통해 문자열을 1과 0이 연속된 비트열로 변환하여 조회하는 방법을 몰랐다.
Skill_Code 열의 비트를 사용해서 각 Python과 C# 스택을 가진 개발자를 찾는다.
이 때, & (비트)연산자를 이용하는데, 비트 연산자가 무엇인지 정확히 이해가 되지 않는다.
Python의 경우, 이진수로 표현하면 256 (2의 8승)으로 표현되고
C#의 경우, 이진수로 표현하면 2(2의 1승)으로 표현이 된다.
SKILLCODES 테이블에서 & 연산자 및 where 절에서 or 를 사용하여 각각 Python 혹은 C# 스킬을 가진 사람을 구한다.
근데 이해가 되지 않는 부분은,
예를 들어 아래 이미지에서 162번을 보면 code 값이 8452이다.
이는 세 가지 스택의 이진수 값을 합한 값인데, 여기서 & 연산자를 사용하면
Python 포함 여부를 알 수 있는지에 대해서는 제대로 모르겠다.
해당 부분은 제대로 다시 찾아봐야겠다.
출처 : 프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/276034
'Database > SQL' 카테고리의 다른 글
[프로그래머스/SELECT] 업그레이드 된 아이템 구하기 (0) | 2024.03.31 |
---|---|
[프로그래머스/SELECT] 가장 큰 물고기 10마리 구하기 (0) | 2024.03.27 |
[프로그래머스/SELECT] 잔챙이 잡은 수 구하기 (0) | 2024.03.26 |
[프로그래머스/SELECT] 조건에 부합하는 중고거래 댓글 조회하기 (0) | 2024.03.25 |
[프로그래머스/SELECT] 평균 일일 대여 요금 구하기 (0) | 2024.03.24 |
Comments