[LeetCode] Find Lucky Integer in an Array

아르당·2026년 5월 1일

LeetCode

목록 보기
291/303
post-thumbnail

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

Problem

정수 배열 arr이 주어졌을 때, 행운의 정수는 배열에서 자신의 값과 같은 빈도로 나타나는 정수이다.
배열에서 가장 큰 행운의 정수를 반환해라. 만약 행운의 정수가 없다면 -1을 반환해라.

Example

#1
Input: arr = [2, 2, 3, 4]
Output: 2
Explanation: 배열에서 행운의 정수는 frequency[2] == 2 때문에 오직 2이다.

#2
Input: arr = [1, 2, 2, 3, 3, 3]
Output: 3
Explanation: 1, 2, 3 모두 행운의 정수이고, 가장 큰 값을 반환한다.

#3
Input: arr = [2, 2, 2, 3, 3]
Output: -1
Explanation: 배열에서 행운의 숫자가 없다.

Constraints

  • 1 <= arr.length <= 500
  • 1 <= arr[i] <= 500

Solved

class Solution {
    public int findLucky(int[] arr) {
        HashMap<Integer, Integer> map = new HashMap<>();

        for(int num : arr){
            map.put(num, map.getOrDefault(num, 0) + 1);
        }

        int luckyInteger = -1;

        for(int key : map.keySet()){
            if(map.get(key) == key){
                luckyInteger = key;
            }
        }

        return luckyInteger;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글