코린이의 소소한 공부노트

[LeetCode/Easy] 1399. Count Largest Group 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 1399. Count Largest Group

무지맘 2023. 6. 12. 01:46

1. Input

1) int n

 

2. Output

1) 1부터 n까지의 수들을 각 숫자의 자릿수의 합으로 그룹을 나눌 때, 그룹의 크기가 가장 큰 것들이 몇개인지 반환

 

3. Constraint

1) 1 <= n <= 10^4

 

4. Example

Input: n = 13 -> Output: 4

설명: 1부터 13까지의 수를 각 자릿수의 합이 같은 숫자끼리 그룹을 나눠보면 [1,10], [2,11], [3,12], [4,13], [5], [6], [7], [8], [9]의 아홉 그룹이 나온다. 이 중 그룹의 크기가 가장 큰 것은 2이므로 그룹의 크기가 2인 그룹의 개수인 4를 반환한다.

 

5. Code

1) 첫 코드(2023/06/12)

class Solution {
    public int countLargestGroup(int n) {
        HashMap<Integer,Integer> m = new HashMap<>();
        int max = 0, ans = 0;
        for(int i=1 ; i<=n ; i++){
            int sum = 0, num = i;
            while(num>0){
                sum += num%10;
                num /= 10;
            }
            m.put(sum, m.getOrDefault(sum,0)+1);
            max = Math.max(max, m.get(sum));
        }
        List<Integer> list = new ArrayList<>(m.keySet());
        for(int i : list)
            if(m.get(i)==max) ans++;
        return ans;
    }
}

- 41%, 27%