7일차

Suhyeon Lee·2024년 10월 10일
0

Time Table

시간내용
09:00-10:00코드카타
10:00-10:30오전 스크럼
10:30-12:00ADsP 강의 수강
12:00-13:00점심식사
13:00-14:00ADsP 강의 수강
14:00-15:00SQL 라이브 세션
15:00-18:00팀 과제
18:00-19:00저녁식사
19:00-20:00아티클 스터디
20:00-20:30저녁 스크럼
20:30-21:00TIL 작성
21:00-23:00부족한 부분 보충



Code kata

SQL 코드카타

44. 가격대 별 상품 개수 구하기

프로그래머스 코딩테스트 연습

  • 문제
    CAR_RENTAL_COMPANY_CAR 테이블과 CAR_RENTAL_COMPANY_RENTAL_HISTORY 테이블에서 자동차 종류가 '세단'인 자동차들 중 10월에 대여를 시작한 기록이 있는 자동차 ID 리스트를 출력하는 SQL문을 작성해주세요. 자동차 ID 리스트는 중복이 없어야 하며, 자동차 ID를 기준으로 내림차순 정렬해주세요.

    • 자동차 종류가 '세단' → WHERE절 car_type = '세단'
    • 10월 대여 시작 → WHERE절 MONTH(start_date) = 10
    • 자동차 ID 리스트는 중복 없음 → DISTINCT
    • 자동차 ID 리스트 기준으로 내림차순 정렬 → ORDER BY car_id DESC
  • 작성한 코드

SELECT
  DISTINCT rh.car_id
FROM
  car_rental_company_rental_history rh 
  LEFT JOIN car_rental_company_car cr 
  USING(car_id)
WHERE
  cr.car_type = '세단'
  AND MONTH(rh.start_date) = 10
ORDER BY
  rh.car_id DESC
;
  • GROUP BY를 사용해 중복을 제거해도 됨

    SELECT
      rh.car_id
    FROM
      car_rental_company_rental_history rh 
      LEFT JOIN car_rental_company_car cr 
      USING(car_id)
    WHERE
      MONTH(rh.start_date) = 10
    GROUP BY
      rh.car_id
    HAVING
      cr.car_type = '세단'
    ORDER BY
      rh.car_id DESC
    ;
  • 서브쿼리 이용

SELECT
  car_id
FROM
  car_rental_company_car
WHERE
  car_type = '세단'
  AND car_id IN (
    SELECT
      car_id
    FROM
      car_rental_company_rental_history
    WHERE
      MONTH(start_date) = 10
    )
ORDER BY
  car_id DESC
;
  • WITH 이용
WITH 
  cedan AS (
    SELECT
      car_id
    FROM
      car_rental_company_car
    WHERE
      car_type = '세단'
  )
  , oct_start AS (
    SELECT
      car_id
    FROM
      car_rental_company_rental_history
    WHERE
      MONTH(start_date) = 10
  )
SELECT
  DISTINCT c.car_id
FROM
  cedan c
  JOIN oct_start os
  USING(car_id)
ORDER BY
  car_id DESC
;

Python 코드가타

6. 두 수의 합

프로그래머스 코딩테스트 연습

  • 작성한 코드
solution = lambda num1, num2 : num1 + num2
  • 다른 풀이
solution = lambda *x:sum(x)
  • 람다는 익명함수 이며, *x는 함수로 들어오는 인수를 튜플로 패킹한다는 뜻
    • print(x)할 때 언패킹해서 프린터하듯 람다도 일급함수니까 함수에서 연산자를 사용하면 패킹을 하는 것
def solution(num1:int, num2:int)->int:
	answer = 0
    answer = num1 + num2
    return answer
  • int는 소수점 제거용
def solutuion(num1, num2):
	return sum([num1,num2])
def solution(num1, num2):
    #return num1 + num2
    i = 0
    while i < abs(num2):
        if num2 < 0:
            num1 -= 1
        else:
            num1 += 1
        i += 1
    return num1



오전 스크럼

팀 과제 피드백

  • price 값이 0.05와 같은 경우가 있어서 반올림을 소수점 첫째 자리에서 올린 건 조금 유효 숫자 문제가 있을 수도?
    • 구매총액의 대략적인 흐름만 파악하려고 보기 쉽게 소수점 첫째 자리 반올림을 사용했는데 반성
    • 다음부터는 이용하는 데이터의 전체적인 내용을 정확하게 파악한 뒤 기준을 정하자



ADsP 강의

3주차

    1. 분석 방법론
    1. 분석 과제 발굴
    1. 분석 프로젝트 관리



SQL 라이브 세션

5회차



SQL 라이브 세션 과제 제출

5회차 과제 풀이

profile
2 B R 0 2 B

0개의 댓글