[LeetCode] Find Numbers with Even Number of Digits

rush0wj·2024년 8월 5일

Leetcode

목록 보기
2/6

Given an array nums of integers, return how many of them contain an even number of digits.

Example 1

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.


Example 2

Input: nums = [555,901,482,1771]
Output: 1
Explanation:
Only 1771 contains an even number of digits.


Constraints

1 <= nums.length <= 500
1 <= nums[i] <= 105


Hint

How to compute the number of digits of a number ?
Divide the number by 10 again and again to get the number of digits.


✍풀이

1. 숫자 추출

class Solution {
    public int findNumbers(int[] nums) {
        
       int result = 0;
        for(int i = 0; i < nums.length; i++){
            int count = 0;

            while(nums[i] != 0){
                nums[i] = nums[i] / 10;
                count = count + 1;
            }
            
            if(count % 2 == 0){
                result++;
            }
        }

        return result;

    }
}

2. 문자열 변환

class Solution {
    public int findNumbers(int[] nums) {
        
        int count = 0;
        for(int num : nums){
            int length = String.valueOf(num).length();

            if(length % 2 == 0){
                count++;
            }
        }
    return count;
    }
}
profile
Developer Record

0개의 댓글