[내일배움캠프-퍼포먼스 마케터] 본캠프 53일차

이석민·2025년 7월 3일
post-thumbnail

오늘 학습한 내용

SQL 코트카타

문제

테이블:Queue

+-------------+---------+ 
| 열 이름 | 유형 | 
+-------------+---------+ 
| person_id | int | 
| person_name | varchar | 
| weight | int | 
| turn | int | 
+-------------+---------+ 
person_id 열에는 고유한 값이 들어 있습니다. 
이 테이블에는 버스를 기다리는 모든 사람에 대한 정보가 있습니다. 
person_id 및 turn 열에는 1에서 n까지의 모든 숫자가 포함되며 여기서 n은 테이블의 행 수
turn은 사람들이 버스에 탑승하는 순서를 결정합니다. 
여기서 turn=1은 가장 먼저 탑승하는 사람을 나타내고 
turn=n은 마지막으로 탑승하는 사람을 나타냅니다. 
weight는 사람의 무게(kg)입니다.
 

버스 탑승을 기다리는 사람들이 줄을 서 있습니다. 
하지만 버스의 무게 제한이 1000킬로그램 이라 탑승이 불가능한 분들이 계실 수도 있습니다.

무게 제한을 초과하지 않고 버스에 탑승할 수 있는 마지막 사람의 무게를 구하는 해를 작성하세요. 
테스트 케이스는 첫 번째 사람이 무게 제한을 초과하지 않도록 생성됩니다.

한 번에 한 사람만 버스 에 탑승할 수 있다는 점을 유의하세요 .

작성 쿼리

SELECT 
    q1.person_name
FROM Queue q1 JOIN Queue q2 ON q1.turn >= q2.turn
GROUP BY q1.turn
HAVING SUM(q2.weight) <= 1000
ORDER BY SUM(q2.weight) DESC
LIMIT 1

* 찾아본 윈도우 함수 쿼리
WITH OrderedQueue AS (
  SELECT 
    person_id,
    person_name,
    weight,
    turn,
    SUM(weight) OVER (ORDER BY turn) AS cumulative_weight
  FROM Queue
)

SELECT weight
FROM OrderedQueue
WHERE cumulative_weight <= 1000
ORDER BY turn DESC
LIMIT 1;

sum over 를 통해 누적 합을 쉽게 계산가능. 만약 테이블이 커질 경우, 
내가 작성한 쿼리는 한 행마다 비교하기 때문에 느려질 수 있다.

PYTHON 코트카타

문제

프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호 일부를 가립니다.
전화번호가 문자열 phone_number로 주어졌을 때, 
전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, 
solution을 완성해주세요.

제한 조건
phone_number는 길이 4 이상, 20이하인 문자열입니다.

작성 코드

def solution(phone_number):
    return '*' * (len(phone_number) - 4) + phone_number[-4:]

머신러닝 라이브 세션

마케팅을 위한 머신러닝 회귀

회귀(Regression)란 무엇인가요?

  1. 회귀의 의미
  • 회귀는 어떤 숫자 값을 예측하는 방법입니다.
  • 예를 들어, "내일 기온이 몇 도일까?", "이번 달 매출이 얼마나 될까?", "이 집의 가격은 얼마일까?"와 같이 숫자로 된 결과를 알고 싶은 문제에 사용합니다.
  • 이런 문제를 풀기 위해 컴퓨터는 입력값(독립변수 X) 과 정답값(종속변수 Y) 사이의 숫자 관계를 학습합니다.
  1. 지도학습의 한 종류
  • 회귀는 지도학습(Supervised Learning)에 속합니다.
  • 즉, 우리가 이미 정답을 알고 있는 데이터를 보여주며 학습시키는 방식입니다.
  • 예 :
    - 독립변수 X: 집의 면적, 방 개수, 위치 등
    - 종속변수 Y: 실제 집값
  • 이처럼 X와 Y가 모두 있는 데이터를 가지고 컴퓨터가 X를 보면 Y를 예측할 수 있는 방법을 배우는 것이 회귀입니다.

참고 feature와 label이란?

  • Feature(예측에 사용되는 입력값 (컬럼)) : 나이, 성별, 선실 등급, 요금 등
  • Label(예측하고자 하는 정답값 (타겟)) : 생존 여부 (0=사망, 1=생존)

자주 쓰이는 표현 정리

  • Feature(우리가 알고 있는 정보들) : 변수, 컬럼, 속성, 입력값, 독립변수 (X)
  • Label(예측하고자 하는 값) : 정답, 타겟값, 종속변수, 출력값 (y), Class(주로 분류에서)

결국 회귀란?

  • 회귀는 숫자를 예측하는 문제에 쓰입니다.
  • 컴퓨터가 X(입력값)과 Y(결과값) 사이의 관계를 배워서 새로운 X가 주어졌을 때 Y를 예측하는 모델입니다.
  • 다양한 분야에서 활용되며, 기초지만 머신러닝에서 매우 중요한 개념입니다.

0개의 댓글