코드카타 58

1661. Average Time of Process per Machine

There is a factory website that has several machines each running the same number of processes. Write a solution to find the average time each machine takes to complete a process. The time to complete a process is the 'end' timestamp minus the 'start' timestamp. The average time is calculated by the total time to complete every process on the machine divided by the number of processes that were ..

SQL 코드카타 2024.05.03

행렬의 덧셈 #list(map(lambda 매개변수:표현식),반복)

행렬의 덧셈은 행과 열의 크기가 같은 두 행렬의 같은 행, 같은 열의 값을 서로 더한 결과가 됩니다. 2개의 행렬 arr1과 arr2를 입력받아, 행렬 덧셈의 결과를 반환하는 함수, solution을 완성해주세요.def solution(arr1, arr2): answer = [] for i in range(len(arr1)): answer.append(list(map((lambda x,y : x+y), arr1[i],arr2[i]))) return answerarr1 = [[1,2],[2,3]]arr2 = [[3,4],[5,6]] ① answer = []# 빈 리스트 생성 ② for i in range(len(arr1)):# arr1 의 길..

상품을 구매한 회원 비율 구하기

USER_INFO 테이블과 ONLINE_SALE 테이블에서 2021년에 가입한 전체 회원들 중 상품을 구매한 회원수와 상품을 구매한 회원의 비율(=2021년에 가입한 회원 중 상품을 구매한 회원수 / 2021년에 가입한 전체 회원 수)을 년, 월 별로 출력하는 SQL문을 작성해주세요. 상품을 구매한 회원의 비율은 소수점 두번째자리에서 반올림하고, 전체 결과는 년을 기준으로 오름차순 정렬해주시고 년이 같다면 월을 기준으로 오름차순 정렬해주세요. SELECT YEAR(sales_date) , MONTH(sales_date) , COUNT(DISTINCT user_id) PUCHASED_USERS , ROUND(COUNT(DISTINCT user_id)/ (SELECT COUNT(user_id) FROM us..

SQL 코드카타 2024.04.19

자동차 대여 기록 별 대여 금액 구하기

CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '트럭'인 자동차의 대여 기록에 대해서 대여 기록 별로 대여 금액(컬럼명: FEE)을 구하여 대여 기록 ID와 대여 금액 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 대여 기록 ID를 기준으로 내림차순 정렬해주세요. SELECT history_id , round(daily_fee * (datediff(end_date, start_date) + 1) * COALESCE(1 - (discount_rate * .01),1) ,0) AS fe..

SQL 코드카타 2024.04.18

약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. def solution(left, right): answer = 0 for i in range(left,right+1): count = 0 for n in range(1,i+1): if i%n == 0: count += 1 if count %2 == 0: answer += i else: answer -= i return answer ① for i in range(left,right+1): # left 부터 right 까지의 수를 반복하는 i 를 생성 # left = 13 ri..

특정 기간동안 대여 가능한 자동차들의 대여비용 구하기

CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블과 CAR_RENTAL_COMPANY_DISCOUNT_PLAN 테이블에서 자동차 종류가 '세단' 또는 'SUV' 인 자동차 중 2022년 11월 1일부터 2022년 11월 30일까지 대여 가능하고 30일간의 대여 금액이 50만원 이상 200만원 미만인 자동차에 대해서 자동차 ID, 자동차 종류, 대여 금액(컬럼명: FEE) 리스트를 출력하는 SQL문을 작성해주세요. 결과는 대여 금액을 기준으로 내림차순 정렬하고, 대여 금액이 같은 경우 자동차 종류를 기준으로 오름차순 정렬, 자동차 종류까지 같은 경우 자동차 ID를 기준으로 내림차순 정렬해주세요. SELECT c.car_id , c.car_..

SQL 코드카타 2024.04.16

입양 시각 구하기(2) #WITH RECURSIVE , SET함수

보호소에서는 몇 시에 입양이 가장 활발하게 일어나는지 알아보려 합니다. 0시부터 23시까지, 각 시간대별로 입양이 몇 건이나 발생했는지 조회하는 SQL문을 작성해주세요. 이때 결과는 시간대 순으로 정렬해야 합니다. WITH RECURSIVE 구문 사용 WITH RECURSIVE TIME AS( SELECT 0 AS h UNION ALL SELECT h+1 FROM TIME WHERE h < 23) SELECT h, COUNT(HOUR(DATETIME)) AS 'COUNT' FROM TIME LEFT OUTER JOIN ANIMAL_OUTS ON h=HOUR(DATETIME) GROUP BY h ORDER BY h; ① WITH RECURSIVE TIME AS( # 가상 테이블명 TIME 생성 ② SELE..

SQL 코드카타 2024.04.11

내적 # zip()

길이가 같은 두 1차원 정수 배열 a, b가 매개변수로 주어집니다. a와 b의 내적을 return 하도록 solution 함수를 완성해주세요. 이때, a와 b의 내적은 a[0]*b[0] + a[1]*b[1] + ... + a[n-1]*b[n-1] 입니다. (n은 a, b의 길이) def solution(a, b): answer = [x*y for x,y in zip(a,b)] result = sum(answer) return result ① answer = [x*y for x,y in zip(a,b)] # zip() 함수를 사용하여 a와 b 리스트를 엮어준다 # 엮은 리스트에서 x 와 y로 임의의 값을 주고 x*y 를 계산해준다 # 계산한 값은 리스트 인수로 반환 ② result = sum(answer)..

가운데 글자 가져오기 # 슬라이싱

단어 s의 가운데 글자를 반환하는 함수, solution을 만들어 보세요. 단어의 길이가 짝수라면 가운데 두글자를 반환하면 됩니다. s는 길이가 1 이상, 100이하인 스트링입니다. def solution(s): answer = '' if len(s) % 2 == 0: answer = s[len(s) // 2 - 1 : len(s) //2 + 1] else: answer = s[len(s) // 2] return answer ① if len(s) % 2 == 0: # s 의 길이가 짝수일때 ② answer = s[len(s) // 2 - 1 : len(s) //2 + 1] # 인덱스를 출력하기 위해 len(s)//2 이렇게 나눈 몫으로 인덱스의 값을 반환 중간 값을 구해주기 때문에 2로 나누어준다!! 5..