내 풀이
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까지 다 하고 처음부터 다시 봐봐야지
'코딩테스트' 카테고리의 다른 글
프로그래머스 | 부족한 금액 계산하기 | Kotlin (1) | 2024.01.06 |
---|---|
프로그래머스 | 문자열 내림차순으로 배치하기 | Kotlin (0) | 2024.01.05 |
프로그래머스 | 내적 | Kotlin (1) | 2024.01.04 |
프로그래머스 | 수박수박수박수 | Kotlin (1) | 2024.01.03 |
프로그래머스 | 가운데 글자 가져오기 | Kotlin (1) | 2024.01.02 |