[golang] LeetCode #1295. Find Numbers with Even Number of Digits

kameals·2019년 12월 28일
1

leetcode

목록 보기
1/14
post-thumbnail

1.문제

integer로 이루어진 배열이 주어지고, 짝수 자릿수가 몇 개인지를 반환한다.

2.접근

// nums에는 다양한 자리수의 배열이 들어온다. 
// 각 요소를 확인한다.
// 10으로 나눠지는 횟수에 1을 더하면 그 수의 자리수이다. 
// 예를 들어 한자리수는 10으로 0번 나눠진다.
// 두자리수는 10으로 1번 나눠진다. 

3. 내가 작성한 답

func findNumbers(nums []int) int {
    c := 0
    for _, n := range nums {
        target := iterativeDigitsCount(n)
        if target%2 == 0 {
            c += 1
        }
    }
    return c
}

func iterativeDigitsCount(number int) int {
    count := 0
    for number != 0 {
        number /= 10
        count += 1
    }
    return count
}

4. 다른 유저의 답안

func findNumbers(nums []int) int {
    var total int
    
    for _, v := range nums {
       len := len(strconv.Itoa(v))

		if len % 2 == 0 {
			total ++
		}
    }
    
    return total
}

다음에 다시 보고 이해해보자.

5. 추가로 공부한 내용

  • C와 Java에서 처럼 전.후 처리를 제외하고 조건문만 표현할 수도 있다는 것.
  • strconv에 대해 strconv
profile
팀의 윤활유 역할이 되고 싶은 소박한 개발자입니다. 좌우명은 '밝고 바르고 튼튼하자'

0개의 댓글