[LeetCode]Find Numbers with Even Number of Digits

오트밀·2022년 1월 21일
0
class Solution {
    public int findNumbers(int[] nums) {
        int evenNumDigit = 0;
        
        for(int i = 0; i < nums.length; i++){
           if((int)(Math.log10(nums[i])+1) %2 == 0 ){
              evenNumDigit++;
           }
        }
        return evenNumDigit;
    }
}

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

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

integer형의 배열들이 주어진다. 얼마나 많은 수의 요소가 짝수형의 자릿수인지 구하라.

even number of digits 를 짝수형의 자릿수라고하니 이상한데 예를 들면 111은 백의 자릿수(10^3)이기 때문에 3이고 4444는 천의 자릿수(10^4)이기때문에 4이다. 이 문제는 10^2,10^4,10^6 과 같은 형식으로 구성된 요소가 얼마나 많은지 찾는 문제이다.

일단 짝수형 자릿수를 0으로 초기화시키고 배열 전체를 for문으로 돌려서

Math.log10() 

의 결과가 2로 나눈 나머지가 없는 == 짝수형 자릿수 요소의 갯수를 하나씩 더한다.

이때 주의할 점은 Math.log10()의 return type이 double이기때문에 0과 비교하려면 int형으로 형변환을 해줘야한다.

https://docs.oracle.com/javase/7/docs/api/java/lang/Math.html#log10(double)

profile
루틴을 만들자

0개의 댓글