[LeetCode] Find Closest Number to Zero

아르당·2026년 8월 20일

LeetCode

목록 보기
477/563
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

사이즈 n의 정수 배열 nums가 주어지고, nums에서 0에 가장 가까운 값을 가진 숫자를 반환해라. 답이 여러 개이면, 가장 큰 값의 숫자를 반환해라.

Example

#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을 반환한다.

Constraints

  • 1 <= n <= 1000
  • -10^5 <= nums[i] <= 10^5

Solved

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;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글