[LeetCode] Maximum Count of Positive Integer and Negative Integer

아르당·2026년 9월 18일

LeetCode

목록 보기
536/579
post-thumbnail

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

Problem

오름차순으로 정렬된 배열 nums가 주어지고, 양의 정수의 개수와 음의 정수 개수 중 더 큰 값을 반환해라.

  • 다시 말해, nums에 포함된 양의 정수의 개수가 pos이고 음의 정수의 개수가 neg라면, pos와 neg 중 더 큰 값을 반환해라.

Example

#1
Input: nums = [-2, -1, -1, 1, 2, 3]
Output: 3

#2
Input: nums = [-3, -2, -1, 0, 0, 1, 2]
Output: 3

#3
Input: nums = [5, 20, 66, 1314]
Output: 4

Constraints

  • 1 <= nums.length <= 2000
  • -2000 <= nums[i] <= 2000
  • nums는 오름차순 정렬이다.

Solved

class Solution {
    public int maximumCount(int[] nums) {
        int n = nums.length;
        int left = 0;
        int right = n - 1;
        int neg = 0;
        int pos = 0;

        while(left <= right){
            int mid = left + (right - left) / 2;

            if(nums[mid] < 0){
                neg = mid + 1;
                left = mid + 1;
            }else{
                right = mid - 1;
            }
        }

        left = 0;
        right = n - 1;

        while(left <= right){
            int mid = left + (right - left) / 2;

            if(nums[mid] > 0){
                pos = n - mid;
                right = mid - 1;
            }else{
                left = mid + 1;
            }
        }

        return Math.max(neg, pos);
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글