19일차

Suhyeon Lee·2024년 10월 28일
0

CodeKata

SQL

42번 문제 풀고 팀 활동

  • 조원들에게 풀이 방법 설명하기
    • 문제
      CAR_RENTAL_COMPANY_CAR 테이블에서 자동차 종류가 'SUV'인 자동차들의 평균 일일 대여 요금을 출력하는 SQL문을 작성해주세요. 이때 평균 일일 대여 요금은 소수 첫 번째 자리에서 반올림하고, 컬럼명은 AVERAGE_FEE 로 지정해주세요.
      • 자동차 종류가 SUV: car_rental_company_car 테이블 car_type 컬럼 == 'SUV'
      • 평균 일일 대여 요금: ROUND(AVG(daily_fee)) AS average_fee
SELECT
  ROUND(AVG(daily_fee)) AS average_fee
FROM
  car_rental_company_car
WHERE
  car_type LIKE 'SUV'
SELECT
  ROUND(AVG(daily_fee),0) average_fee
FROM
  car_rental_company_car
WHERE
  car_type = 'SUV'
  • WHERE절에 정규표현식 써도 됨: car_type REGEXP '^SUV$'
    • 단, REGEXP 'SUV'라 쓰면 LIKE '%SUV%'와 같은 의미라 활용 시 주의해야 함
  • WHERE절에 IN 써도 됨: car_type IN('SUV')
    • car_type = 'SUV'와 같은 뜻

LIKE는 일부 값만 같은 데이터를 검색하기 위해 사용한다.
=은 정확히 일치되는 데이터만 출력한다. (car_type LIKE 'SUV' == car_type = 'SUV')
IN은 여러 개의 조건 값을 한 번에 처리하기 위해 사용한다. (괄호 안의 여러 개의 값 중, 하나라도 일치하면 참을 반환)

77. Recyclable and Low Fat Products

  • 작성한 쿼리
SELECT
  product_id
FROM
  products
WHERE
  low_fats = 'Y'
  AND recyclable = 'Y'
;
  • 이렇게 써도 됨
SELECT
  product_id
FROM
  products
WHERE
  low_fats = 'Y' && recyclable = 'Y'
;

78. Find Customer Referee

  • 작성한 쿼리
    • NULL은 숫자가 아니라서 referee_id <> 2로 하니까 referee_id가 1인 경우만 출력되었음. 주의하자!
SELECT
  name
FROM
  customer
WHERE
  IFNULL(referee_id, 0) <> 2
;
  • 이렇게 해도 됨
SELECT
  name
FROM
  customer
WHERE
  referee_id IS NULL
  OR referee_id <> 2
;

Python

24. 서울에서 김서방 찾기

  • 작성한 코드
def solution(seoul):
    return f'김서방은 {seoul.index("Kim")}에 있다'
  • 문제가 진짜 원한 건 이런 풀이가 아닌 것 같아서 다른 방법으로도 풀어봄
def solution(seoul):
    cnt = 0
    for word in seoul:
        if word != 'Kim':
            cnt += 1
        elif word == 'Kim':
            break
    answer = f'김서방은 {cnt}에 있다'
    return answer
  • 이것도 됨
def solution(seoul):
    for idx in range(len(seoul)):
        if seoul[idx] == 'Kim':
            return f'김서방은 {idx}에 있다'
  • enumerate() 써도 됨
def solution(seoul):
    idx = 0
    for i, name in enumerate(seoul):
        if 'Kim' in name:
            idx = i
            break
    return f'김서방은 {idx}에 있다'

라이브 세션

4회차

팀 활동

SQL 풀이 공유

  • FORMAT() Function

    • Format the number as "#,###,###.##" (and round with two decimal places)
    • SELECT FORMAT(250500.5634, 2); → 250,500.56
    • 참고
  • 항등원과 역원

    • 항등원
      • 임의의 수에 어떤 수를 연산한 결과가 연산 전과 항상 같을 때
      • e.g. 곱셈에 대한 항등원은 1
      • e.g. 덧셈에 대한 항등원은 0
    • 역원
      • 임의의 수에 어떤 수를 연산한 결과가 그 연산에 대한 항등원일 때
      • e.g. 곱셈에 대한 역원은 원래의 수의 역수
      • e.g. 덧셈애 대한 역원은 반수(원래의 수에 부호를 바꾼 수)
  • ROUND(45.923, -1) → 50

  • "평균"의 종류가 여러 개라는 사실 알고 계신가요?

    • 산술평균
      • 주어진 수의 합을 수의 개수로 나눈 값
      • n개의 수가 있고, 산술평균의 값을 m이라고 할 때
      • 일반적으로 평균이라 하면 바로 이 산술평균을 의미
      • 여러 과목 시험 성적의 평균을 계산하거나, 한 반 전체 학생들의 평균 점수를 계산할 때 등에 쓰임
  • 기하평균

    • n개의 값을 모두 곱한 값을 n제곱근 한 값

    • 넓이, 부피와 같이 곱으로 계산되는 값들의 평균을 계산할 때
      e.g.
      2와 8의 기하평균은 4 → 가로 길이가 2이고 세로 길이가 8인 직사각형의 넓이와 한 변의 길이가 4인 정사각형의 넓이는 동일

    • 조화평균

      • 역수의 산술평균의 역수
      • 역수를 두 번 취한 값
      • 특정한 차원에서의 값을 구하고, 다시 원래 차원의 값으로 되돌려서 평균을 구할 때 사용
        e.g.
        자동차가 달린 평균 속력을 계산할 때 시간의 차원에서 평균을 구하고 속력으로 되돌림: 자동차로 전체 거리 절반을 80km/h로 달리고 남은 거리 절반을 100km/h로 달렸을 때 전체 거리 평균 속력은 조화평균인 88.888…km/h (90km/h가 아님)
    • 산술기하평균

      • 산술평균과 기하평균 간의 관계를 설명하는 식
      • 산술평균은 항상 기하평균보다 크거나 같은 성질을 가짐
      • 산술기하평균 절대부등식을 이용해 특정한 값이나 식의 최댓값이나 최솟값을 구할 수 있음

SDL

파이썬 & 사용자 정의 함수

Pandas 과제

라이브러리 개인 과제

profile
2 B R 0 2 B

0개의 댓글