https://programmers.co.kr/learn/courses/30/lessons/77884
[문제]
두 정수 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;
}
}
[고찰]
이번 문제는 약수의 개수를 구하는 함수를 구현하고 함수 결과에 따라 덧셈, 뺄셈 처리만 해주면 해결되는 간단한 문제였다.
'프로그래머스' 카테고리의 다른 글
[프로그래머스_Level1] 모의고사 (0) | 2021.07.16 |
---|---|
[프로그래머스_Level1] 예산 (0) | 2021.07.16 |
[프로그래머스_Level1] 실패율_2019 카카오 신입 공채 (0) | 2021.07.16 |
[프로그래머스_Level1] 3진법 뒤집기 (0) | 2021.07.16 |
[프로그래머스_Level1] 두 개 뽑아서 더하기 (0) | 2021.07.16 |