문제 개요
높이 값들이 담긴 리스트가 주어졌을 때, 그 안에는 중복된 항목도 포함되어 있을 수 있습니다. 이때 우리가 구해야 할 것은 중복을 제거한 고유한 항목들만의 평균입니다.
예를 들어 입력이 heights = [96,25,83,96,33,83,24,25]라고 해보겠습니다. 고유한 요소는 [96, 25, 83, 33, 24]이고, 이들의 합은 96 + 25 + 83 + 33 + 24 = 261입니다. 따라서 평균은 261 ÷ 5 = 52.2가 됩니다.
해결 접근 방법
이 문제는 다음 두 단계만으로 간단하게 해결할 수 있습니다.
h_set:= heights 리스트를 집합(set)으로 변환하여 중복 제거h_set에 담긴 값들의 합을 h_set의 크기(원소 개수)로 나눈 값을 반환
Python의 set()은 자동으로 중복된 값을 제거해 주기 때문에, 별도의 필터링 로직 없이도 코드를 매우 간결하게 작성할 수 있습니다.
예제 코드
다음 구현 예시를 통해 더 자세히 이해해 보겠습니다.
def solve(heights): h_set = set(heights) return sum(h_set)/len(h_set) heights = [96,25,83,96,33,83,24,25] print(solve(heights))
입력
[96,25,83,96,33,83,24,25]
출력
52.2