최대 1 분 소요

Question

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

리스트가 주어질 때, 자리수가 짝수인 수의 개수를 구하는 문제였다.

Example

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.
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

    Solution

    class Solution:
      def findNumbers(self, nums: List[int]) -> int:
            
          cnt=0 # 답
          tmp=0 # 자리수
            
          # 총 자리수가 짝수인 수가 몇 개인지
          for x in nums:
              tmp=0
              while x/10>=1: # 숫자가 한자리수 일때는 통과
                  x=x/10
                  tmp+=1
                    
              tmp+=1 # 마지막 자리수 카운트
                
              if tmp%2==0: # 자리수가 짝수인 수 카운트
                  cnt+=1
                    
          return cnt
    

끄적

  • x에는 10으로 나눈 나머지가 아닌 “몫”을 넣아야 한다!


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기