Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

파이썬으로 최저·최고 급여를 제외한 평균 급여 계산하기

서로 다른 값들로 이루어진 배열 salary가 있다고 가정해 봅시다. 여기서 salary[i]는 i번째 직원의 급여를 의미합니다. 이때 최저 급여와 최고 급여를 제외한 나머지 직원들의 평균 급여를 구하는 것이 우리의 과제입니다.

예를 들어 입력이 salary = [8000, 6000, 2000, 8500, 2500, 4000]이라면 출력은 5125.0이 됩니다. 최솟값은 2000, 최댓값은 8500이므로 이 두 값을 제외한 [8000, 6000, 2500, 4000]의 평균을 구하면 (8000 + 6000 + 2500 + 4000) / 4 = 5125.0이 되기 때문입니다.

해결 접근 방법

이 문제는 다음 단계를 따라 해결할 수 있습니다.

  • 급여 배열에서 최솟값을 제거합니다.
  • 급여 배열에서 최댓값을 제거합니다.
  • 제거 후 남은 요소들의 합을 요소 개수로 나누어 반환합니다.

파이썬 구현 예제

아래 코드를 통해 실제 구현 방법을 확인해 보겠습니다.

def solve(salary):
    salary.remove(min(salary))
    salary.remove(max(salary))
    return sum(salary) / len(salary)

salary = [8000, 6000, 2000, 8500, 2500, 4000]
print(solve(salary))

입력

[8000, 6000, 2000, 8500, 2500, 4000]

출력

5125.0

코드 설명

위 코드에서는 파이썬 내장 함수인 min()max()를 사용해 각각 최솟값과 최댓값을 찾은 뒤, remove() 메서드로 리스트에서 제거합니다. 그다음 sum() 함수로 남은 요소들의 합을 구하고, len() 함수로 요소 개수를 세어 나누면 원하는 평균 급여를 얻을 수 있습니다.

참고로 이 방식은 입력 배열의 모든 요소가 서로 다르다는 전제 조건이 필요합니다. 만약 중복된 최솟값이나 최댓값이 존재한다면 remove()는 해당 값 중 하나만 제거하므로, 문제 조건에 따라 로직을 조정해야 할 수 있습니다.