Leetcode PostgreSQL Last Person to Fit in the Bus

업데이트:

문제

Link

코드

-- Write your PostgreSQL query statement below
SELECT person_name
FROM (
  SELECT person_name, weight, turn, SUM(weight) OVER (ORDER BY turn) AS sum
  FROM Queue
) AS Queue
WHERE sum <= 1000
ORDER BY turn DESC 
LIMIT 1

결과

Link

설명

  1. Queue 테이블의 사람들이 turn 순서대로 버스를 탑승할 때, weight의 합산이 1000kg 초과하지 않고 탑승할 수 있는 마지막 person_name을 탐색하는 문제이다.

  2. 서브 쿼리로 weight의 합계를 turn 순서대로 수행한다.

  3. turn 순서대로 내림차순 정렬하여 sum이 1000 이하인 마지막 탑승한 한 사람을 탐색한다.

댓글남기기