Loan Types — LeetCode 2990 Python Solution

EasyLeetCode PremiumDatabase
Problem
#2990
Reading time
2 min

Table schema

SQL
Table: Loans +-------------+---------+ | Column Name | Type | +-------------+---------+ | loan_id | int | | user_id | int | | loan_type | varchar | +-------------+---------+ loan_id is column of unique values for this table. This table contains loan_id, user_id, and loan_type.

Example

SQL
+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| loan_id     | int     |
| user_id     | int     |
| loan_type   | varchar |
+-------------+---------+
loan_id is column of unique values for this table.
This table contains loan_id, user_id, and loan_type.

Python solution

Python
import duckdb
import pandas as pd

def solution(loans: pd.DataFrame) -> pd.DataFrame:
    con = duckdb.connect()
    con.register("Loans", loans)
    return con.execute("""SELECT user_id
FROM Loans
GROUP BY 1
HAVING SUM(loan_type = 'Refinance') > 0 AND SUM(loan_type = 'Mortgage') > 0
ORDER BY 1;""").df()

Complexity

MeasureComplexity
TimeO(n log n) (typical)
SpaceO(n) auxiliary

Related problems

Frequently asked questions

How hard is LeetCode 2990. Loan Types?
LeetCode 2990. Loan Types is rated Easy on LeetCode.
What topics does LeetCode 2990. Loan Types cover?
LeetCode 2990. Loan Types is tagged Database on LeetCode.
Is LeetCode 2990. Loan Types a premium problem?
Yes. LeetCode 2990. Loan Types is a LeetCode Premium problem, so the full statement and test cases require a paid LeetCode subscription.

Stuck on problems like this in a live interview?

Stealth Interview is a desktop app for macOS and Windows. It reads the problem off your screen and returns a working solution with a step-by-step explanation and its time and space complexity — invisible to screen sharing.

Get Stealth Interview