코린이의 소소한 공부노트

[LeetCode/Easy] 1608. Special Array With X Elements Greater Than or Equal X 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1608. Special Array With X Elements Greater Than or Equal X

무지맘 2022. 12. 29. 12:13

1. Input

1) 음이 아닌 정수 배열 nums

 

2. Output

1) nums를 특별하게 만들어주는 숫자 x

2) nums가 특별하지 않다면 1

// 배열이 특별하기 위한 조건

- 해당 배열에 x 이상인 수가 정확히 x개 있을 때

- x는 배열에 없는 숫자여도 상관 없다.

- x는 개수에 해당하는 숫자이므로 음수가 될 수 없다.

 

3. Constraint

1) 1 <= nums.length <= 100

2) 0 <= nums[i] <= 1000

 

4. Example

Input: nums = [3,5] -> Output: 2

Input: nums = [0,0] -> Output: -1

설명:

// 첫번째

- 3, 52 이상인 수고, 2 이상인 수는 nums2개 있다.

// 두번째

- x=0이라면 0 이상인 수가 0개여야 하는데 맞지 않다.

- x=1이라면 1 이상인 수가 1개여야 하는데 맞지 않다.

- 어떤 xnums를 특별하게 할 수 없으므로 1을 반환한다.

 

5. Code

1) 첫 코드(2022/08/01)

import java.util.*;

int x = nums.length;
Arrays.sort(nums);
int count = 0;
while(x>0){
    for(int i=nums.length-1 ; i>=0 ; i--){
        if(nums[i]>=x) count++;
        else break;
    }
    if(x==count) break;
    count = 0;
    x--;
}
return x==0 ? -1 : x;