[프로그래머스] 약수의 개수와 덧셈 문제 풀이(Java)

이하영·2023년 7월 23일
0

코딩테스트

목록 보기
5/21
post-thumbnail

✔ 문제 설명

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


✔ 제한사항

  1. 1 ≤ leftright ≤ 1,000

💬 내 풀이

class Solution {
    public int solution(int left, int right) {
        int answer = 0;
        
        for(int i=left; i<=right; i++){
            int cnt=0;
            for(int j=1; j<=i; j++){
                if(i%j==0) cnt++;
            }
            if(cnt%2==0){
                answer+=i;
            }else{
                answer-=i;
            }
        }
        
        return answer;
    }
}
  • 처음에 cnt를 초기화 하는 코드를 for문 밖에 작성하여 오류가 났었다.
    → 약수를 세는 변수 cnt는 바깥쪽 for문이 다시 시작할 때마다 초기화를 해주고, 해당 숫자의 약수를 세야 한다.
profile
안녕하세요, 웹 개발자 이하영입니다!

1개의 댓글

comment-user-thumbnail
2023년 7월 23일

유익한 글이었습니다.

답글 달기