분류 전체보기276 [TIL178] leetcode - Trips and Users 문제 설명이번 문제는 2013년 10월 1일부터 10월 3일까지의 택시 운행 데이터를 대상으로, 차단되지 않은 고객과 차단되지 않은 운전자 간의 요청만 고려하여 일별 취소율(Cancellation Rate)을 계산하는 문제였다.취소율은 다음과 같이 정의된다.취소율=취소된 요청 수/전체 요청 수여기서 취소된 요청은cancelled_by_drivercancelled_by_client상태를 의미하며,completed상태는 취소가 아닌 정상 완료 요청이다.또한 문제에서 가장 중요한 조건은 다음이었다.고객(Client)과 운전자(Driver)가 모두 차단되지 않은 사용자여야 한다.내가 처음 생각한 접근처음에는 Trips 테이블과 Users 테이블을 조인한 후,JOIN users uON u.users_id = t... 2026. 6. 27. [TIL177] Emotionally Consistent Users 찾기 문제 설명사용자의 반응(Reaction) 데이터를 이용하여 감정 표현이 일관된 사용자(Emotionally Consistent User) 를 찾는 문제였다.Emotionally Consistent User의 조건은 다음과 같다.전체 리액션이 5개 이상가장 많이 사용한 리액션이 전체 리액션의 60% 이상가장 많이 사용한 리액션(Dominant Reaction)과 그 비율을 출력출력 컬럼은 다음과 같다.user_iddominant_reactionreaction_ratio이 문제는 사용자별 최빈값(Mode)을 찾고, 그 비율을 계산하는 집계 + 윈도우 함수 문제였다.내가 처음 생각한 접근처음 문제를 읽었을 때 가장 먼저 떠오른 것은유저별 리액션 개수 집계↓가장 많이 사용한 리액션 찾기↓전체 리액션과 비교하여 .. 2026. 6. 26. [TIL176] leetcode - 이탈 위험 고객(Churn Risk Customers) 찾기 문제 설명구독 이벤트 데이터를 이용하여 이탈 위험이 높은 고객을 찾는 문제였다.이탈 위험 고객은 다음 조건을 모두 만족해야 한다.마지막 이벤트가 취소(Cancel)가 아닌 활성 상태구독 이력 중 Downgrade가 1회 이상현재 구독 금액이 과거 최고 구독 금액의 50% 이하구독 기간이 60일 이상출력 컬럼은 다음과 같다.user_idcurrent_plancurrent_monthly_amountmax_historical_amountdays_as_subscriber이 문제는 현재 상태(Current Row)와 과거 전체 이력(Aggregation)을 동시에 활용하는 대표적인 문제였다.내가 처음 생각한 접근처음에는 문제를 보고사용자별 과거 구독 이력 집계↓현재 구독 상태 확인↓조건 비교순서로 접근했다.그래서.. 2026. 6. 26. [TIL175] leetcode - Find Golden Hour Customers 문제 설명음식 주문 데이터를 이용하여 피크 시간에 꾸준히 주문하면서 만족도도 높은 고객(Golden Hour Customer) 을 찾는 문제였다.Golden Hour Customer가 되기 위해서는 다음 네 가지 조건을 모두 만족해야 한다.주문 횟수가 3건 이상전체 주문 중 60% 이상이 피크 시간(11:00~14:00, 18:00~21:00)에 발생평점을 남긴 주문의 평균 평점이 4.0 이상전체 주문 중 50% 이상이 평점을 남긴 주문출력해야 하는 컬럼은 다음과 같다.customer_idtotal_orderspeak_hour_percentageaverage_rating이 문제는 조건부 집계(Conditional Aggregation) 를 이용하여 여러 조건을 동시에 계산하는 집계 문제였다.내가 처음 생.. 2026. 6. 26. [TIL174] leetcode - Find Books with Polarized Opinions 문제 설명독서 기록 데이터를 이용하여 독자들의 평가가 극명하게 갈리는 책을 찾는 문제였다.문제에서 호불호가 극명하게 갈린다고 판단하는 기준은 다음과 같다.평점이 4점 이상인 기록이 최소 1개평점이 2점 이하인 기록이 최소 1개독서 기록이 최소 5개 이상극단적인 평점(2점 이하 또는 4점 이상)이 전체 독서 기록의 60% 이상또한 책별로최고 평점최저 평점Rating SpreadPolarization Score를 계산하여 출력해야 한다.출력 컬럼은 다음과 같다.book_idtitleauthorgenrepagesrating_spreadpolarization_score이 문제는 조건부 집계(Conditional Aggregation)를 이용하여 특정 조건의 개수를 세고, 비율을 계산하는 집계 문제였다.내가 처음.. 2026. 6. 25. [TIL173] leetcode - Find Stores with Inventory Imbalance 문제 설명매장별 재고 정보를 이용하여 재고 불균형이 발생한 매장을 찾는 문제였다.문제에서 먼저 각 매장의가장 비싼 제품가장 저렴한 제품을 찾고,두 제품의 재고량을 비교하여가장 비싼 제품 재고 인 경우만 출력해야 했다.또한 각 매장은 최소 3개 이상의 상품을 판매해야 하며,불균형 비율은cheapest_quantity / most_expensive_quantity로 계산하여 출력해야 했다.출력 컬럼은 다음과 같다.store_idstore_namelocationmost_exp_productcheapest_productimbalance_ratio이 문제는 그룹별 최대/최소값을 찾은 뒤, 다시 원본 데이터와 연결하여 최대·최소 행(Row)을 추출하는 Self Join 문제였다.내가 처음 생각한 접근처음에는 문제를.. 2026. 6. 25. 이전 1 2 3 4 ··· 46 다음