[LeetCode] 1295. Find Numbers with Even Number of Digits
LeetCode - 1295. Find Numbers with Even Number of Digits 알고리즘 문제 풀이
분류
문제 링크 : https://leetcode.com/problems/find-numbers-with-even-number-of-digits/
풀이
정수 벡터가 주어질 때 벡터 원소의 길이가 짝수인 숫자가 몇 개인지 반환하면 된다.
nums[i]
의 최댓값이 10^5이므로 100000을 d라고 했을 때, d와 d를 10으로 나눈 값으로 각 원소의 값이 나누어지는지 확인하면서 원소 길이(len)를 구하고 그때의 원소 길이가 짝수인지 확인하였다.
아래는 문제 이해에 도움을 주는 예제이다.
Input: nums = [12,345,2,6,7896]
Output: 2
Explanation:
12 contains 2 digits (even number of digits).
345 contains 3 digits (odd number of digits).
2 contains 1 digit (odd number of digits).
6 contains 1 digit (odd number of digits).
7896 contains 4 digits (even number of digits).
Therefore only 12 and 7896 contain an even number of digits.
소스 코드
class Solution {
public:
int findNumbers(vector<int>& nums) {
int ans = 0;
for (int elem : nums) {
int d = 100000;
int len = 6;
while (d != 0) {
if (elem / d != 0) {
break;
}
d /= 10;
--len;
}
if ((len & 1) == 0) {
++ans;
}
}
return ans;
}
};