본문 바로가기
Kotlin(프로그래머스)/Level 1

[프로그래머스/Kotlin] 약수의 개수와 덧셈

by Yuno. 2022. 3. 18.
728x90

문제 링크 -> https://programmers.co.kr/learn/courses/30/lessons/77884

 

코딩테스트 연습 - 약수의 개수와 덧셈

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주

programmers.co.kr

두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.

제한사항 

  • 1 ≤ left ≤ right ≤ 1,000

------------------------------------------------------------풀이------------------------------------------------------------------
1. map함수로 left~right까지 탐색하면서 value값의 약수의 갯수를 구한다. 
2. 약수의 갯수가 짝수면 value를 홀수면 -value를 반환해서 더한다.

class Solution {
    fun solution(left: Int, right: Int): Int = (left..right).map{ value ->
        if( ((1..value/2).filter{ value%it == 0}.size+1)%2 == 0 ) value else -value
    }.sum()
}

------------------------------------------------------------결과------------------------------------------------------------------

일부 함수를 좀 쓸줄 알게되고 람다가 익숙해지니 코드가 많이 간략화 되네요

 

 

 

 

- 문제에 대한 질문 댓글 환영!
- 중간에 잘못된 부분이 있다면 댓글로 남겨주세요. 수정하겠습니다.

728x90

댓글