Dev/Algorithm

알고리즘 - Find Numbers with Even Number of Digits

healthyryu 2020. 1. 27. 16:57

 

문제 자체를 이해하지 못해서 처음에 헤맸습니다...

자리수가 짝수인 숫자를 찾는 문제입니다.

문제

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] <= 10^5

 

회사에서도 Kotlin 을 사용하고 있지만, 제대로 사용하지 못하기 때문에, Kotlin 에 익숙해지기 위해서 Kotlin 사용에 초점을 맞춰서 문제를 풀었습니다.

 

답안 :

class Solution {
    fun findNumbers(nums: IntArray): Int {
        return nums.filter { it.toString().count() % 2 == 0 }.count()
    }
}

 

생각 : 일단은 조건에 맞춰져서 뭔가를 찾아야해서 Filter를 생각했으며, 수의 짝수가 아니라 자릿수의 짝수라서 숫자를 문자로 변경해서 자릿수의 짝수를 찾았습니다.

반응형