써먹는 웹개발
[Java 코딩테스트] 약수의 개수와 덧셈 본문
728x90
반응형
문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/77884
문제 설명
문제 설명두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요. 제한사항
|
Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
class Solution {
public int solution(int left, int right) {
int answer = 0;
int cnt;
for(int i=left;i<=right;i++){
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;
}
}
|
cs |
더 좋은 Solution.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i=left;i<=right;i++) {
if(check(i)) answer += i;
else answer -= i;
}
return answer;
}
public boolean check(int num) {
int cnt = 0;
for(int i=1;i<=num;i++) {
if(num % i == 0) cnt++;
}
return cnt % 2 == 0 ? true : false;
}
}
|
cs |
728x90
반응형
'Study > Java 코딩 테스트' 카테고리의 다른 글
[Java 코딩테스트] 예산 (0) | 2021.10.12 |
---|---|
[Java 코딩테스트] 폰켓몬 (0) | 2021.10.07 |
[Java 코딩테스트] 없는 숫자 더하기 (0) | 2021.10.04 |
[Java 코딩테스트] 신규 아이디 추천 (0) | 2021.10.03 |
Comments