코딩테스트 풀이/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, 5는 2 이상인 수고, 2 이상인 수는 nums에 2개 있다.
// 두번째
- x=0이라면 0 이상인 수가 0개여야 하는데 맞지 않다.
- x=1이라면 1 이상인 수가 1개여야 하는데 맞지 않다.
- 어떤 x도 nums를 특별하게 할 수 없으므로 –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;