[오늘의 문제] Big Countries

shlim55·2025년 11월 16일

코딩테스트

목록 보기
175/223

테이블:World

+-------------+---------+
| 열 이름 | 유형 |
+-------------+---------+
| 이름 | varchar |
| 대륙 | varchar |
| 면적 | 정수 |
| 인구 | 정수 |
| GDP | 빅인트 |
+-------------+---------+
name은 이 테이블의 기본 키(고유한 값을 갖는 열)입니다.
이 표의 각 행은 국가 이름, 국가가 속한 대륙, 면적, 인구, GDP 가치에 대한 정보를 제공합니다.

나라가 크다고 말할 수 있는 경우는 다음과 같습니다.

면적이 최소 300만(즉, ) 이상인 경우3000000 km2
인구는 최소 2,500만 명입니다 25000000.
주요 국가 의 이름, 인구, 면적을 찾는 솔루션을 작성하세요 .

결과 표를 원하는 순서 대로 반환합니다 .

결과 형식은 다음 예와 같습니다.

예 1:

입력:
세계 순위표:
+-------------+-----------+---------+------------+-------------+-------------+
| 이름 | 대륙 | 면적 | 인구 | GDP |
+-------------+-----------+---------+------------+-------------+-------------+
| 아프가니스탄 | 아시아 | 652230 | 25500100 | 20343000000 |
| 알바니아 | 유럽 | 28748 | 2831741 | 12960000000 |
| 알제리 | 아프리카 | 2381741 | 37100000 | 188681000000 |
| 안도라 | 유럽 | 468 | 78115 | 3712000000 |
| 앙골라 | 아프리카 | 1246700 | 20609294 | 100990000000 |
+-------------+-----------+---------+------------+-------------+-------------+
산출:
+-------------+------------+---------+
| 이름 | 인구 | 지역 |
+-------------+------------+---------+
| 아프가니스탄 | 25500100 | 652230 |
| 알제리 | 37100000 | 2381741 |
+-------------+------------+---------+

내가 한 풀이

import pandas as pd

def big_countries(world: pd.DataFrame) -> pd.DataFrame:
    
    df = world[(world["area"] >= 3000000) | (world["population"] >= 25000000)]

    return df[['name', 'population', 'area']]


data = {
    "name": ['Afghanistan' , 'Albania', 'Algeria', 'Andorra', 'Angola'],
    "continent": ['Asia', 'Europe', 'Africa', 'Europe', 'Africa'],
    "area": [652230, 28748, 2381741, 468, 1246700],
    "population": [25500100, 2831741, 31700000, 78115, 20609294],
    "gdp": [20343000000, 12960000000, 188681000000, 3712000000, 100990000000]
}    

test_df = pd.DataFrame(data)
result = big_countries(test_df)
print(result)

트러블 슈팅
일단 조건문 하듯이 판다스를 다루는게 아직 익숙지 않았다.
판다스 문법 이슈랑
판다스에서 함수 사용하는건 그만큼 더더욱 낯설었던 것 같다.
리트코드 자체도 좀 익숙지 않고

원래 내가 했던 코드문에서

import pandas as pd
data = {
    "name": ['Afghanistan' , 'Albania', 'Algeria', 'Andorra', 'Angola'],
    "continent": ['Asia', 'Europe', 'Africa', 'Europe', 'Africa'],
    "area": [652230, 28748, 2381741, 468, 1246700],
    "population": [25500100, 2831741, 31700000, 78115, 20609294],
    "gdp": [20343000000, 12960000000, 188681000000, 3712000000, 100990000000]
}
df = pd.DataFrame(data)
df = df[(df["area"]>=3000000) | (df["population"]>=25000000)]
df

기존에 선언된 함수를 안 없애고

조건문과, 원하는 컬럼만 추출하는 함수를 만들고

함수를 호출 하는 방식으로 풀어야 했다.

profile
A Normal Programmer

0개의 댓글