[코딩테스트]/[Pandas]

[LeetCode - Pandas] (Easy) 584. Find Customer Referee

잰잰' 2025. 4. 30. 12:25
Table: Customer

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| id          | int     |
| name        | varchar |
| referee_id  | int     |
+-------------+---------+

SQL에서 id는 이 테이블의 기본 키 열입니다.
이 테이블의 각 행은 고객의 id, 이름, 그리고 그들을 추천한 고객의 id를 나타냅니다.

 

문제

고객 id = 2가 추천하지 않은 고객들의 이름을 찾아주세요.

결과 테이블은 순서에 관계없이 반환해주세요.

결과 형식은 아래 예시와 같습니다.

Example 1:

Input: 
Customer table:
+----+------+------------+
| id | name | referee_id |
+----+------+------------+
| 1  | Will | null       |
| 2  | Jane | null       |
| 3  | Alex | 2          |
| 4  | Bill | null       |
| 5  | Zack | 1          |
| 6  | Mark | 2          |
+----+------+------------+
Output: 
+------+
| name |
+------+
| Will |
| Jane |
| Bill |
| Zack |
+------+

 

✏️ 풀이

import pandas as pd

def find_customer_referee(customer: pd.DataFrame) -> pd.DataFrame:
    return customer[(customer['referee_id'] != 2) | (customer['referee_id'].isna())][['name']]

2가 아닌 것만 찾으면 될 줄 알았는데 null값은 isna()로 찾아줘야 원하는 결과값이 나온다