코딩테스트
25/04/27 프로그래머스 SQL 고득점 Kit
helena1129
2025. 4. 27. 13:42
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
2번 형질이 보유하지 않으면서 1번이나 3번 형질을 보유하고 있는 대장균 개체의 수(COUNT)를 출력하는 SQL 문을 작성해주세요. 1번과 3번 형질을 모두 보유하고 있는 경우도 1번이나 3번 형질을 보유하고 있는 경우에 포함합니다.
SELECT COUNT(*) AS COUNT
FROM ECOLI_DATA
WHERE GENOTYPE & 2 = 0 AND (GENOTYPE & 1 OR GENOTYPE & 4)
NOTE: 비트 연산 - 이진수의 계산
기호 | 표현 | 설명 |
& | AND | 둘 다 1일때만 1 반환. 그 외에는 0 반환 |
| | OR | 둘 중 하나만 1이어도 1 반환. |
^ | XOR | 둘 중 하나만 1일 때 1 반환. |
~ | NOT | 보수 연산. |
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
DEVELOPERS 테이블에서 Python이나 C# 스킬을 가진 개발자의 정보를 조회하려 합니다. 조건에 맞는 개발자의 ID, 이메일, 이름, 성을 조회하는 SQL 문을 작성해 주세요.
결과는 ID를 기준으로 오름차순 정렬해 주세요.
-- S: ID, EMAIL, FIRST_NAME, LAST_NAME
-- F: SKILLCODES & DEVELOPERS
-- O: ID ASC
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
NOTE: 이진 변환하지 않아도 비트 연산 사용 가능
3. 노선별 평균 역 사이 거리 조회하기(Level 2)
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
SUBWAY_DISTANCE 테이블에서 노선별로 노선, 총 누계 거리, 평균 역 사이 거리를 노선별로 조회하는 SQL문을 작성해주세요.
총 누계거리는 테이블 내 존재하는 역들의 역 사이 거리의 총 합을 뜻합니다. 총 누계 거리와 평균 역 사이 거리의 컬럼명은 각각 TOTAL_DISTANCE, AVERAGE_DISTANCE로 해주시고, 총 누계거리는 소수 둘째자리에서, 평균 역 사이 거리는 소수 셋째 자리에서 반올림 한 뒤 단위(km)를 함께 출력해주세요.결과는 총 누계 거리를 기준으로 내림차순 정렬해주세요.
-- S: ROUTE, TOTAL_DISTANCE(소수 둘째자리에서 반올림)+km, AVERAGE_DISTANCE(소수 셋째자리에서 반올림)+km
-- F: SUBWAY_DISTANCE
-- O: TOTAL_DISTANCE DESC
SELECT ROUTE,
CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1),'km') TOTAL_DISTANCE,
CONCAT(ROUND(AVG(D_BETWEEN_DIST), 2),'km') AVERAGE_DISTANCE
FROM SUBWAY_DISTANCE
GROUP BY ROUTE
ORDER BY SUM(D_BETWEEN_DIST) DESC
NOTE: 타입 달라도 CONCAT 가능