쉬움 0명 해결 정답률 0%

Above-Average Values

Keep the values that are greater than the average.

배우게 될 내용

  • 먼저 평균 계산하기
  • 두 번째 순회에서 값 걸러내기
  • 원래 순서 유지하기

문제

Compute the average of the list, then keep only the values strictly greater than it, in their original order.

Implement above_average(numbers).

Input

numbers: The list of integers.

Output

Return the values above the average (an empty list for an empty input).

제약 조건

0 ≤ length ≤ 10,000; -1,000,000 ≤ each value ≤ 1,000,000

예시

예시 1
입력:
numbers = [1, 2, 3, 4, 10]

예상 출력:
expected = [10]
입력:
std::vector<long long> numbers = {1, 2, 3, 4, 10};

예상 출력:
std::vector<long long> expected = {10};
입력:
long[] numbers = new long[] {1, 2, 3, 4, 10};

예상 출력:
long[] expected = new long[] {10};

설명

The average is 20 / 5 = 4; only 10 is greater than 4.

예시 2
입력:
numbers = [5, 5, 5]

예상 출력:
expected = []
입력:
std::vector<long long> numbers = {5, 5, 5};

예상 출력:
std::vector<long long> expected = {};
입력:
long[] numbers = new long[] {5, 5, 5};

예상 출력:
long[] expected = new long[] {};

설명

Every value equals the average 5, so none is greater: [].

접근 방법

먼저 스스로 풀어 본 뒤 힌트를 하나씩 열어 보세요.

힌트 1

먼저 리스트의 평균을 구한 뒤, 그보다 큰 값만 남기세요.

힌트 2

보통 전체 합을 구하는 한 번의 순회와, 조건에 맞는 값을 모으는 한 번의 순회가 필요합니다.

힌트 3

리스트가 비어 있으면 결과도 비어 있어야 합니다.

예상 복잡도

시간 O(n), 추가 공간 O(1)

참고 자료

이 문제는 CodeUtility에 맞게 수정되었습니다. 위의 설명과 제한 조건을 따르세요.

다른 사람의 풀이 보기

커뮤니티 솔루션

아직 공개된 풀이가 없습니다. 문제를 풀고 첫 풀이를 공유하세요.