알고리즘 CODEKATA 33 (약수와 개수와 덧셈)

오리너구리·2024년 6월 10일
0

CODEKATA

목록 보기
32/57
post-thumbnail

문제 설명

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


제한사항

  • 1 ≤ left ≤ right ≤ 1,000

내 풀이

최종 코드

class Solution {
    fun solution(left: Int, right: Int): Int {
        var answer: Int = 0

        
        for(i in left .. right){
            var evenCount = 0
            
            for(j in 1 .. right){           
                if(i % j==0){
                evenCount ++
              }                 
            }
            if(evenCount % 2 == 0){
                    answer += i
                }else{
                    answer -= i
                }

        }
        
        
        
        return answer
    }
}

풀이 과정

class Solution {
    fun solution(left: Int, right: Int): Int {
        var answer: Int = 0
        var count = 0
        
        for(i in left .. right){
            for(j in 1 .. right){           
                if(i % j==0){
                count ++
              }                 
            }
            if(count % 2 == 0){
                    answer += i
                }else{
                    answer -= i
                }
        }        
        return answer
    }
}

코드 잘짠거같은데 답이 틀림

why!?!?

class Solution {
    fun solution(left: Int, right: Int): Int {
        var answer: Int = 0

        
        for(i in left .. right){
            var evenCount = 0
            
            for(j in 1 .. right){           
                if(i % j==0){
                evenCount ++
              }                 
            }
            if(evenCount % 2 == 0){
                    answer += i
                }else{
                    answer -= i
                }

        }
        
        
        
        return answer
    }
}

이것 저것 해보다가 혹시몰라서 약수 개수를 넣는 count를 for 문 안에 넣어줬더니 통과함..

변수를 반복문 안에 선언하면 각 루프 반복마다 변수가 초기화되는데

밖에다 선언하면 초기화가 제대로 안돼서 잘못된 값이 나왔던 것이였당~~ 고민해결
어쩐지 나 코드 맞게 짠거같은데 왜 틀렸지했넹~ ㅋ


TMI

원래 어제 푼건데.. 어제 아파서 이거밖에 못하고 드러누워서 TIL도 못쓰고 글도 못올렸당..
그래서 오늘 올림~

profile
오리너구리입니다

0개의 댓글