코린이의 소소한 공부노트

[LeetCode/Easy] 1394. Find Lucky Integer in an Array 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1394. Find Lucky Integer in an Array

무지맘 2022. 12. 24. 02:41

1. Input

1) 정수 배열 arr

 

2. Output

1) arr의 요소 중 가장 큰 lucky 정수를 반환

2) lucky 정수가 없다면 1 반환

3) lucky 정수란 정수의 값이 그 정수의 빈도수와 같은 것을 말한다.

 

3. Constraint

1) 1 <= arr.length <= 500

2) 1 <= arr[i] <= 500

 

4. Example

Input: arr = [1,2,2,3,3,3] -> Output: 3

설명:

- 1: 1번 등장

- 2: 2번 등장

- 3: 3번 등장

- 1, 2 3이 모두 lucky 정수이므로, 가장 큰 3을 반환한다.

 

5. Code

1) 첫 코드(2022/07/06)

if(arr.length==1){
    if(arr[0]==1) return 1;
    else return -1;
}

Arrays.sort(arr);
int[] fre = new int[arr[arr.length-1]];
for(int i=0 ; i<arr.length ; i++)
    fre[arr[i]-1]++;

int max = -1;
for(int i=0 ; i<fre.length ; i++)
    if(fre[i] == i+1 && max<i+1)
        max = i+1;

return max;