728x90
반응형
[프로그래머스] 코딩테스트 연습 -> 월간 코드 챌린지 시즌2 -> 약수의 개수와 덧셈
https://school.programmers.co.kr/learn/courses/30/lessons/77884
해결 과정
이 문제는 left부터 right까지 중 짝수개의 약수를 갖는 수들의 합을 구하면 된다.
먼저 이중 for문을 사용하여 약수의 개수를 변수 a를 이용하여 나타내준다.
left부터 right 까지의 수를 i라고 표현하고, 나눠주는 수를 j라고 표현하면
i % j == 0 이 될 때 약수의 개수인 a를 ++해주면 된다.
약수의 개수를 구하는 반복문을 벗어나면, 이 a 가 짝수인지 홀수인지 판별하는 반복문을 만들어
짝수일 경우에는 answer += i 를 해주고
홀수일 경우에는 answer -= i 를 해준다
그리고 나서 right까지 똑같이 반복해주면되는데, 이때 int a=0을 넣어 개수가 새로 초기화 해주도록 하면 된다.
소스 코드
class Solution {
public int solution(int left, int right) {
int answer = 0;
for (int i = left; i<=right; i++) {
int a = 0;
for (int j = 1; j <= i; j++) {
if ( i % j == 0 ) {
a++;
}
}
if (a % 2 == 0) {
answer += i;
} else{
answer -= i;
}
}
return answer;
}
}
728x90
반응형
'JAVA > Programmers' 카테고리의 다른 글
JAVA 프로그래머스 [부족한 금액 계산하기] 자바 Lv.1 (0) | 2023.08.07 |
---|---|
JAVA 프로그래머스 [문자열 내림차순으로 배치하기] 자바 Lv.1 (0) | 2023.08.07 |
JAVA 프로그래머스 [내적] 자바 Lv.1 (0) | 2023.08.05 |
JAVA 프로그래머스 [수박수박수박수박수박수?] 자바 Lv.1 (0) | 2023.08.05 |
JAVA 프로그래머스 [가운데 글자 가져오기] 자바 Lv.1 (0) | 2023.08.05 |
댓글