35일차

Suhyeon Lee·2024년 11월 19일

CodeKata

SQL

107. Primary Department for Each Employee

  • 작성한 쿼리
SELECT
  employee_id
  , department_id
FROM
  Employee
GROUP BY
  employee_id
HAVING
  COUNT(*) = 1      

UNION

SELECT
  employee_id
  , department_id
FROM
  Employee
WHERE
  primary_flag = 'Y'
;

참고할 만한 다른 풀이

  • Subquery, Window function
SELECT
  employee_id
  , department_id
FROM 
  (
  SELECT
    employee_id
    , department_id
    , COUNT(employee_id) OVER (PARTITION BY employee_id) AS ct
    , primary_flag FROM Employee
  ) AS sub 
WHERE 
  ct=1 
  OR primary_flag='Y'
;
  • WHERE절 IN 서브쿼리
SELECT employee_id, department_id
FROM Employee
WHERE primary_flag='Y' OR 
    employee_id IN
    (SELECT employee_id
    FROM Employee
    Group by employee_id
    having count(employee_id)=1)
  • CTE
WITH employee_count AS (
  SELECT 
    employee_id
    , COUNT(*) AS appearance_count
  FROM 
    Employee
  GROUP BY 
    employee_id
)
SELECT
  Employee.employee_id 
  , department_id
FROM 
  Employee e
  JOIN employee_count ec
  ON e.employee_id=ec.employee_id
WHERE
  e.primary_flag='Y' 
  OR (e.primary_flag='N' 
  AND ec.appearance_count=1)

Python

44. 최소직사각형

  • 작성한 코드

참고할 만한 다른 풀이

  1. SUM 활용
solution = lambda sizes: max(sum(sizes, [])) * max(min(size) for size in sizes)
  1. 다중 할당(multiple assignments)
def solution(sizes):
    row = 0
    col = 0
    for a, b in sizes:
        if a < b:
            a, b = b, a
        row = max(row, a)
        col = max(col, b)
    return row * col
    def solution(sizes):
        w = []
        h = []
        for i in range(len(sizes)):
            if sizes[i][0] >= sizes[i][1]:
                w.append(sizes[i][0])
                h.append(sizes[i][1])
            else:
                h.append(sizes[i][0])
                w.append(sizes[i][1])

        return max(w) * max(h)

라이브 세션

통계야 놀자 4회차

머신러닝

과제 1
1.13 - 1.18
과제 2

아티클 스터디

확실히 알아두면 만사가 편해지는 머신러닝 10가지 알고리즘

SDL

추가 학습 내용

회고

  • 공부하는 양이 많아지니까 복습하기도 쉽지 않다…
  • 목요일에 머신러닝 라이브세션도 추가되는데 큰일이다~
profile
2 B R 0 2 B

0개의 댓글