코드카타 58

ROOT 아이템 구하기

ROOT 아이템을 찾아 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME)을 출력하는 SQL문을 작성해 주세요. 이때, 결과는 아이템 ID를 기준으로 오름차순 정렬해 주세요. SELECT I.ITEM_ID , I.ITEM_NAMEFROM ITEM_INFO IJOIN ITEM_TREE TON I.ITEM_ID = T.ITEM_IDWHERE PARENT_ITEM_ID IS NULLORDER BY 1 ASC; 단, 각 아이템들은 오직 하나의 PARENT 아이템 ID를 가지며, ROOT 아이템의 PARENT 아이템 ID는 NULL 입니다. ROOT 아이템이 없는 경우는 존재하지 않습니다. 위의 2줄이 힌트였음!ROOT 아이템을 찾아야하는데 결국 마지막 뿌리까지 찾아가야 하는 거였고ROOT 아이템..

SQL 코드카타 2024.10.15

업그레이드 된 아이템 구하기

아이템의 희귀도가 'RARE'인 아이템들의 모든 다음 업그레이드 아이템의 아이템 ID(ITEM_ID), 아이템 명(ITEM_NAME), 아이템의 희귀도(RARITY)를 출력하는 SQL 문을 작성해 주세요. 이때 결과는 아이템 ID를 기준으로 내림차순 정렬주세요. SELECT I.ITEM_ID , I.ITEM_NAME , I.RARITYFROM ITEM_INFO IJOIN ITEM_TREE TON I.ITEM_ID = T.ITEM_IDWHERE T.PARENT_ITEM_ID IN (SELECT ITEM_ID FROM ITEM_INFO WHERE RARITY = 'RARE')ORDER BY ITEM_ID DESC; RARE 아이템 의 다음 업그레이드 아이템을 찾아야 한다. 1. RARE 아이템..

SQL 코드카타 2024.10.11

조건에 맞는 사원 정보 조회하기

HR_DEPARTMENT, HR_EMPLOYEES, HR_GRADE 테이블에서 2022년도 한해 평가 점수가 가장 높은 사원 정보를 조회하려 합니다. 2022년도 평가 점수가 가장 높은 사원들의 점수, 사번, 성명, 직책, 이메일을 조회하는 SQL문을 작성해주세요. 2022년도의 평가 점수는 상,하반기 점수의 합을 의미하고, 평가 점수를 나타내는 컬럼의 이름은 SCORE로 해주세요. WITH a AS (SELECT EMP_NO , SUM(SCORE) SCOREFROM HR_GRADEGROUP BY EMP_NO)SELECT a.SCORE , e.EMP_NO , EMP_NAME , POSITION , EMAILFROM HR_EMPLOYEES eJOIN a ON a.EMP_..

SQL 코드카타 2024.10.10

연도 별 평균 미세먼지 농도 조회하기

AIR_POLLUTION 테이블에서 수원 지역의 연도 별 평균 미세먼지 오염도와 평균 초미세먼지 오염도를 조회하는 SQL문을 작성해주세요. 이때, 평균 미세먼지 오염도와 평균 초미세먼지 오염도의 컬럼명은 각각 PM10, PM2.5로 해 주시고, 값은 소수 셋째 자리에서 반올림해주세요. 결과는 연도를 기준으로 오름차순 정렬해주세요. SELECT YEAR(YM) AS YEAR , ROUND(AVG(PM_VAL1),2) AS 'PM10' , ROUND(AVG(PM_VAL2),2) AS 'PM2.5'FROM AIR_POLLUTIONWHERE LOCATION2 = '수원'GROUP BY YEAR(YM)ORDER BY YEAR(YM); ROUND 함수 사용법을 익히기에 좋다!

SQL 코드카타 2024.10.08

노선별 평균 역 사이 거리 조회하기

SUBWAY_DISTANCE 테이블에서 노선별로 노선, 총 누계 거리, 평균 역 사이 거리를 노선별로 조회하는 SQL문을 작성해주세요. 총 누계거리는 테이블 내 존재하는 역들의 역 사이 거리의 총 합을 뜻합니다. 총 누계 거리와 평균 역 사이 거리의 컬럼명은 각각 TOTAL_DISTANCE, AVERAGE_DISTANCE로 해주시고, 총 누계거리는 소수 둘째자리에서, 평균 역 사이 거리는 소수 셋째 자리에서 반올림 한 뒤 단위(km)를 함께 출력해주세요. 결과는 총 누계 거리를 기준으로 내림차순 정렬해주세요. SELECT ROUTE , CONCAT(ROUND(SUM(D_BETWEEN_DIST), 1),'km') AS TOTAL_DISTANCE , CONCAT(ROUND(AVG(D_BETWE..

SQL 코드카타 2024.10.08

크기가 작은 부분문자열

숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다.def solution(t, p): answer = 0 n = len(p) for i in range(len(t)-n+1): parts = t[i:i+n] if parts t: "10203"p: "15"  ① n ..

550. Game Play Analysis IV

WITH cte_login AS( SELECT player_id , DATEDIFF(event_date, MIN(event_date) OVER(PARTITION BY player_id)) = 1 as login FROM activity)SELECT ROUND(SUM(login) / COUNT(DISTINCT player_id), 2) as fractionFROM cte_login DATEDIFF(event_date, MIN(event_date) OVER(PARTITION BY player_id))=1event_date 와 player_id의 처음 로그인한 날짜 사이의 일수 계산이 1일 때 라는 조건이 True 면 1, False 면 0으로 표기된다. * MIN(event_date) OVER..

SQL 코드카타 2024.05.31

삼총사 #combinations

한국중학교에 다니는 학생들은 각자 정수 번호를 갖고 있습니다. 이 학교 학생 3명의 정수 번호를 더했을 때 0이 되면 3명의 학생은 삼총사라고 합니다. 예를 들어, 5명의 학생이 있고, 각각의 정수 번호가 순서대로 -2, 3, 0, 2, -5일 때, 첫 번째, 세 번째, 네 번째 학생의 정수 번호를 더하면 0이므로 세 학생은 삼총사입니다. 또한, 두 번째, 네 번째, 다섯 번째 학생의 정수 번호를 더해도 0이므로 세 학생도 삼총사입니다. 따라서 이 경우 한국중학교에서는 두 가지 방법으로 삼총사를 만들 수 있습니다.한국중학교 학생들의 번호를 나타내는 정수 배열 number가 매개변수로 주어질 때, 학생들 중 삼총사를 만들 수 있는 방법의 수를 return 하도록 solution 함수를 완성하세요.def s..

이상한 문자 만들기

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.def solution(s): answer = '' s_list = s.split(' ') for i in s_list: for j in range(len(i)): if j % 2 ==0 : answer += i[j].up..

직사각형 별찍기

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.n, m = map(int, input().strip().split(' '))for i in range(m): print('*'*n)     ①n, m = map(int, input().strip().split(' ')) # input() 에 5 3 이 들어가게 되면# stirp() 로 좌우의 공백을 제거하여 5 3 으로 추출# split(' ') 로 5와 3을 각각 문자열로 나누어준다.# map() 함수에 int 형을 사용하여 문자열을 정수형으로 바꾸어 준다.  > n = 5> m = 3 ② for i in range(m): print('*..