Table: MyNumbers
+-------------+------+
| Column Name | Type |
+-------------+------+
| num | int |
+-------------+------+
이 테이블은 중복이 있을 수 있습니다(즉, 이 테이블에는 SQL에서 기본 키가 없습니다).
이 테이블의 각 행은 정수 값을 포함합니다.
문제
단일 숫자는 MyNumbers 테이블에 한 번만 나타난 숫자입니다.
가장 큰 단일 숫자를 찾으세요. 단일 숫자가 없다면 null을 보고하세요.
결과 형식은 다음 예시와 같습니다.
Example 1:
Input:
MyNumbers table:
+-----+
| num |
+-----+
| 8 |
| 8 |
| 3 |
| 3 |
| 1 |
| 4 |
| 5 |
| 6 |
+-----+
Output:
+-----+
| num |
+-----+
| 6 |
+-----+
설명 : 단일 숫자는 1, 4, 5, 6입니다.
6이 가장 큰 단일 숫자이므로 6을 반환합니다.
Example 2:
Input:
MyNumbers table:
+-----+
| num |
+-----+
| 8 |
| 8 |
| 7 |
| 7 |
| 3 |
| 3 |
| 3 |
+-----+
Output:
+------+
| num |
+------+
| null |
+------+
설명 : 입력 테이블에 단일 숫자가 없으므로 null을 반환합니다.
✏️ 풀이
import pandas as pd
def biggest_single_number(my_numbers: pd.DataFrame) -> pd.DataFrame:
df = my_numbers.groupby('num')['num'].count().reset_index(name='cnt')
df = df[df['cnt'] == 1]
result = df[df['num'] == df['num'].max()]
if not result.empty:
return result[['num']]
else:
return pd.DataFrame({'num': [None]})
📚 개념정리
1. if else : 조건에 따라 실행할 코드를 분기하는 데 사용되는 제어문. 주어진 조건이 참(True)일 때와 거짓(False)일 때 실행할 코드를 정의할 수 있음
# 기본 문법 #
if 조건:
# 조건이 참일 때 실행할 코드
else:
# 조건이 거짓일 때 실행할 코드
2. empty : 데이터프레임이나 시리즈가 비어있는지를 확인하는 속성. 비어있을 경우 True를 반환하고, 그렇지 않으면 False를 반환
- 빈 데이터프레임: 행(row)과 열(column)이 모두 없는 데이터프레임
- 빈 시리즈: 데이터가 없고, 인덱스만 있는 시리즈
'[코딩테스트] > [Pandas]' 카테고리의 다른 글
[LeetCode - Pandas] (Easy) 607. Sales Person (0) | 2025.04.28 |
---|---|
[LeetCode - Pandas] (Easy) 610. Triangle Judgement (0) | 2025.04.28 |
[LeetCode - Pandas] (Easy) 620. Not Boring Movies (0) | 2025.04.25 |
[LeetCode - Pandas] (Easy) 627. Swap Salary (0) | 2025.04.24 |
[LeetCode - Pandas] (Easy) 1050. Actors and Directors Who Cooperated At Least Three Times (0) | 2025.04.24 |