문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
인덱스가 0부터 시작하고 짝수 길이의 배열 nums가 주어진다.
nums가 비어 있지 않으면 다음을 반복해라.
두 개의 숫자 a와 b의 평균은 (a + b) / 2이다.
위의 과정을 통해 계산된 서로 다른 평균의 개수를 반환해라.
#1
Input: nums = [4, 1, 4, 0, 3, 5]
Output: 2
Explanation:
1. 0과 5를 제거하고 평균은 (0 + 5) / 2 = 2.5이다. 현재 nums = [4, 1, 4, 3]이다.
2. 1과 4를 제거하고 평균은 (1 + 4) / 2 = 2.5이다. 현재 nums = [4, 3]이다.
3. 3과 4를 제거하고 평균은 (3 + 4) / 2 = 3.5이다.
2.5, 2.5, 3.5 중에서 서로 다른 숫자가 2개 있어서 2를 반환한다.
#2
Input: nums = [1, 100]
Output: 1
Explanation:
1과 100을 제거한 후에 계산해야 할 평균은 하나뿐이라서 1을 반환한다.
class Solution {
public int distinctAverages(int[] nums) {
Set<Integer> set = new HashSet<>();
int n = nums.length;
Arrays.sort(nums);
for(int i = 0; i < n / 2; i++){
int sum = nums[i] + nums[n - 1 - i];
set.add(sum);
}
return set.size();
}
}