프로그래머스

[프로그래머스_Level1] 약수의 개수와 덧셈

빙수빈수 2021. 7. 16. 18:40

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

 

[코드]

class Solution {
public int solution(int left, int right) {
        int answer=0;
        
        for(int i=left;i<=right;i++) {
        	// 약수의 개수가 짝수일때는 더하기
        	if(count(i)%2==0)
        		answer+=i;
        	// 약수의 개수가 홀수일때는 더하기
        	else
        		answer-=i;
        }
        
        return answer;
    }
	
	// 약수의 개수 구하는 함수
	public int count(int n) {
		int result=0;
		for(int i=1;i<=n;i++) {
			if(n%i==0)
				result++;
		}
		return result;
	}
}

 

[고찰]

 이번 문제는 약수의 개수를 구하는 함수를 구현하고 함수 결과에 따라 덧셈, 뺄셈 처리만 해주면 해결되는 간단한 문제였다.