KATA#108

codataffee·2024년 8월 13일
0

CODEKATA

목록 보기
108/114
post-thumbnail

WHAT IS KATA?

KATA는 기술과 기술 향상에 초점을 맞춘 코드 챌린지입니다.
일부는 프로그래밍 기본 사항을 교육하는 반면 다른 일부는 복잡한 문제 해결에 중점을 둡니다.

이 용어는 The Pragmatic Programmer 라는 책의 공동 저자인 Dave Thomas 가
무술에서 일본의 카타 개념을 인정하면서 처음 만들어졌습니다.
Dave의 개념 버전은 코드 카타를 프로그래머가
연습과 반복을 통해 기술을 연마하는 데 도움이 되는 프로그래밍 연습으로 정의합니다.


리트코드 - 판다스 30일 문제


- PYTHON


✔️ 문제 #1: Nth Highest Salary

✔️ 제출 코드

✔️ 코드 분석

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

✔️ CHECK POINT

  • 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]})
      


profile
커피 좋아하는 데이터 꿈나무

0개의 댓글

관련 채용 정보