코딩 테스트/Pandas

Percentage of Users Attended a Contest

susinlee 2024. 12. 26. 09:36

[문제]

https://leetcode.com/problems/percentage-of-users-attended-a-contest/description/

 

 

[풀이]

1. register 테이블에서 contest_id 별로 유저 수를 계산한다.

2. 계산한 유저 수를 총 유저 수로 나누어서 비율(percentage을 구해준다.

3. percentage 를 내림차순 정렬, contest_id 를 오름차순 정렬 해준다.

 

Pandas

def users_percentage(users: pd.DataFrame, register: pd.DataFrame) -> pd.DataFrame:
    grouped = register.groupby('contest_id')['user_id'].count().reset_index(name='user_cnt')
    grouped['percentage'] = round(grouped['user_cnt'] / len(users) * 100, 2)
    grouped.sort_values(by=['percentage', 'contest_id'], ascending=[False, True], inplace=True)
    
    return grouped[['contest_id', 'percentage']]

 

SQL

SELECT 
    contest_id
    , ROUND(COUNT(user_id)/(SELECT COUNT(user_id) FROM Users)*100, 2) AS percentage 
FROM Register
GROUP BY contest_id
ORDER BY percentage DESC, contest_id

'코딩 테스트 > Pandas' 카테고리의 다른 글

Monthly Transactions I  (0) 2024.12.30
Queries Quality and Percentage  (1) 2024.12.27
Project Employees I  (0) 2024.12.26
Average Selling Price  (0) 2024.12.25
Not Boring Movies  (0) 2024.12.25