KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.
이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.
리트코드 - 판다스 30일 문제
✔️ 제출 코드
✔️ 코드 분석
import pandas as pd
import numpy as np
def nth_highest_salary(employee: pd.DataFrame, N: int) -> pd.DataFrame:
if N <= 0:
return pd.DataFrame({"getNthHighestSalary({})".format(N): [None]})
sorted_salaries = employee['salary'].drop_duplicates().sort_values(ascending=False)
if len(sorted_salaries) >= N:
nth_salary = sorted_salaries.iloc[N - 1]
else:
nth_salary = None
result = pd.DataFrame({"getNthHighestSalary({})".format(N): [nth_salary]})
return result
PANDAS
drop_duplicates( )
메서드를 사용하여 중복된 값을 제거한 후,
sort_values(ascending=False)
를 통해 데이터를 내림차순으로 정렬하기
# 중복된 급여를 제거하고, 높은 급여부터 낮은 급여 순으로 정렬하여
# N번째로 높은 급여를 찾기 위한 준비
sorted_salaries = employee['salary'].drop_duplicates().sort_values(ascending=False)
iloc[N-1]
을 사용하여 정렬된 리스트에서 N번째 값을 선택하기
# 인덱스는 0부터 시작하기 때문에 N-1 인덱스를 선택하여 N번째 값을 정확히 가져오기
nth_salary = sorted_salaries.iloc[N - 1]
조건문을 사용하여 N이 0보다 작거나 같은 경우 바로 None을 반환하고,
N번째 급여가 존재하지 않으면 None을 반환하기
# N이 음수이거나 0일 경우, null에 해당하는 None을 반환하여 불필요한 계산을 방지하기
if N <= 0:
return pd.DataFrame({"getNthHighestSalary({})".format(N): [None]})