반응형
https://leetcode.com/problems/count-largest-group/
전수조사 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
key는 각 자리수 합, value는 그 개수로 map 변수 groupMap, 정답 변수 ans와 largestGroupNum를 선언 후 적잘히 초기화해줍니다.
📔 풀이과정
1. 1 ~ n까지 loop를 수행하며 다음을 수행합니다.
1-1. 현재 원소 i의 각 자리수 합 값을 구합니다. 이 값을 sumDigits에 저장합니다.
1-2. sumDigits를 key로 해 value값을 증가시켜줍니다.
1-3. largestGroupNum에 갱신된 값과 비교해 최댓값을 넣어줍니다.
2. groupMap의 원소를 순회하며 largestGroupNum과 같은 값의 개수를 세어 ans에 저장합니다.
📔 정답 출력 | 반환
ans를 반환합니다.
📕 Code
📔 C++
class Solution {
public:
int getSumDigits(int i){
int sum = 0;
string s = to_string(i);
for(auto c : s) {
sum += c - '0';
}
return sum;
}
int countLargestGroup(int n) {
map <int, int> groupMap;
int ans = 0, largestGroupNum = 0;
for(int i = 1; i <= n; i++) {
int sumDigits = getSumDigits(i);
groupMap[sumDigits]++;
largestGroupNum = max(largestGroupNum, groupMap[sumDigits]);
}
for(auto g : groupMap) {
if (largestGroupNum == g.second) {
ans++;
}
}
return ans;
}
};
*더 나은 내용을 위한 지적, 조언은 언제나 환영합니다.
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - LeetCode (easy) 1464. Maximum Product of Two Elements in an Array (0) | 2024.03.28 |
---|---|
(C++) - LeetCode (easy) 1436. Destination City (0) | 2024.03.19 |
(C++) - LeetCode (easy) 1385. Find the Distance Value Between Two Arrays (0) | 2024.03.04 |
(C++) - LeetCode (easy) 1380. Lucky Numbers in a Matrix (0) | 2024.03.01 |
(C++) - LeetCode (easy) 997. Find the Town Judge (0) | 2023.09.20 |