문제 링크 -> 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()
}
------------------------------------------------------------결과------------------------------------------------------------------
일부 함수를 좀 쓸줄 알게되고 람다가 익숙해지니 코드가 많이 간략화 되네요
- 문제에 대한 질문 댓글 환영!
- 중간에 잘못된 부분이 있다면 댓글로 남겨주세요. 수정하겠습니다.
'Kotlin(프로그래머스) > Level 1' 카테고리의 다른 글
[프로그래머스/Kotlin] 두 개 뽑아서 더하기 (0) | 2022.03.19 |
---|---|
[프로그래머스/Kotlin] 3진법 뒤집기 (0) | 2022.03.18 |
[프로그래머스/Kotlin] 실패율 (0) | 2022.03.17 |
[프로그래머스/Kotlin] 체육복 (0) | 2022.03.17 |
[프로그래머스/Kotlin] 모의고사 (0) | 2022.03.17 |
댓글