문제 :
정수 배열이 주어졌을 때, 그 중 짝수의 자릿수 nums가 포함된 정수의 수를 반환합니다.
Example 1 :
Input: nums = [12,345,2,6,7896]
Output: 2
Explanation:
12는 2자리(짝수 자릿수)를 포함합니다.
345는 3자리(홀수 자릿수)를 포함합니다.
2는 1자리(홀수 자릿수)를 포함합니다.
6은 1자리(홀수 자릿수)를 포함합니다.
7896은 4자리(짝수 자릿수)를 포함합니다.
따라서 12와 7896만 짝수 자릿수를 포함합니다.
Example 1 :
Input: nums = [555,901,482,1771]
Output: 1
Explanation:
1771에만 짝수 자릿수가 있습니다.
제약 조건 :
- 1 <= nums.length <= 500
- 1 <= nums[i] <= 105
나의 코드 - 1 ( toString(), for문 사용 )
var findNumbers = function (nums) {
let result = 0;
for(let i = 0; i < nums.length ; i++){
let len = nums[i].toString().length;
if(!(len % 2)) result++;
}
return result;
}
나의 코드 - 2 ( 10으로 나눠서 구하기 )
var findNumbers = function (nums) {
let result = 0;
for (let i = 0; i < nums.length; i++) {
let ret = getResult(nums[i]);
if (ret) result++;
}
return result;
};
const getResult = (n) => {
let ret = false;
while (n >= 10) {
n = n / 10;
ret = !ret;
}
return ret;
};
코드를 돌렸을 때 성능, 메모리 면에서 방법 2가 더 좋았다.
'leetCode > Array 101' 카테고리의 다른 글
[easy] Max Consecutive Ones (3) | 2022.04.29 |
---|
Comment