문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음
사이즈 n의 정수 배열 nums가 주어지고, nums에서 0에 가장 가까운 값을 가진 숫자를 반환해라. 답이 여러 개이면, 가장 큰 값의 숫자를 반환해라.
#1
Input: nums = [-4, -2, 1, 4, 8]
Output: 1
Explanation:
-4와 0의 거리는 |-4| = 4이다.
-2와 0의 거리는 |-2| = 2이다.
1과 0의 거리는 |1| = 1이다.
4와 0의 거리는 |4| = 4이다.
8과 0의 거리는 |8| = 8이다.
따라서 배열에서 0과 가장 가까운 숫자는 1이다.
#2
Input: nums = [2, -1, 1]
Output: 1
Explanation: 1과 -1 둘 다 0에 가장 가까운 숫자이고, 1이 더 큰 수라서 1을 반환한다.
class Solution {
public int findClosestNumber(int[] nums) {
int distance = Math.abs(nums[0] - 0);
int num = nums[0];
for(int i = 1; i < nums.length; i++){
int nowDistance = Math.abs(nums[i] - 0);
if(nowDistance < distance || (nowDistance == distance && nums[i] > num)){
num = nums[i];
distance = nowDistance;
}
}
return num;
}
}