코딩테스트
프로그래머스 | 약수의 개수와 덧셈 | Kotlin
다시은
2024. 1. 5. 09:21
내 풀이
class Solution {
fun solution(left: Int, right: Int): Int {
var answer: Int = 0
var count: Int = 0
for(i in left..right){
for(ii in 1..i){
if(i %ii == 0) count++
}
if (count %2 ==0) answer += i else answer -= i
count = 0
}
return answer
}
}
left 와 right 를 범위로 for문을 넣어서 약수가 나올때마다 변수 count 에 1씩 더해주고
총 count 가 짝수이면 덧셈 홀수이면 뺄셈을 해줬다. 그 뒤 for문을 반복하기 전에 count 값을 0으로 초기화했다.
한 번에 완성은 했는데 딱 봐도 복잡하다😒
다른 사람 풀이
class Solution {
fun solution(left: Int, right: Int): Int {
return (left..right).map { i -> if ((1..i).filter { i % it == 0 }.size % 2 == 0) i else -i }.sum()
}
}
분명히 아는 것들인데 왜 이렇게 해볼 생각을 못할까 😒😒
내가 count 변수를 새로 만들어서 개수를 구하고 짝,홀수 구분하고 있을 때 여기에서는 size로 한 번에 해결했다.
레벨 2까지 다 하고 처음부터 다시 봐봐야지