본문 바로가기
TIL

[코테연습] 2441. Largest Positive Integer That Exists With Its Negative

by 크라00 2024. 7. 29.

 

- 배열 / 정렬 문제

 

https://leetcode.com/problems/largest-positive-integer-that-exists-with-its-negative/description/?envType=daily-question&envId=2024-05-02

 

- 문제 분석

 

1. int[] nums 배열 중에 마이너스, 플러스가 두개다 존재하는 동일한 수 중 가장 큰 수를 찾아라.

 

- 문제 풀이

1. boolean[] 배열을 하나 선언한다.

2. nums 배열 마이너스 숫자가 있는 경우에 boolean [] 배열의 해당 i 번째를 true 로 선언한다.

3. nums 를 Arrays.sort() 함수로 정렬한다.

4. nums 를 가장 큰수부터 탐색하기 위해서 nums 배열을 뒤쪽 부터 확인하여 boolean[] 배열에 존재할 경우 해당 숫자를 반환한다.

 

class Solution {
    public int findMaxK(int[] nums) {
        Arrays.sort(nums);

        boolean[] exist = new boolean[1001];
        for(int i = 0; i < nums.length; i++) {
            if (nums[i] > 0) {
                break;
            }
            exist[Math.abs(nums[i])] = true;
        }

        for(int i = nums.length-1; i >= 0; i--) {
            if (nums[i] >= 0 && exist[Math.abs(nums[i])]) {
                return nums[i];
            }
        }
        return -1;
    }
}