조앤의 기술블로그
[프로그래머스] 약수의 개수와 덧셈 (java) 본문
문제의 큰 알고리즘 자체는 어렵지 않다.
고민했던 부분은
효율적으로 약수의 개수를 구하는 방법은??
[코드]
import java.lang.Math;
class Solution {
public int solution(int left, int right) {
int answer = 0;
for(int i = left; i <= right; i++){
if(numOfDivisor(i) % 2 == 0){
answer += i;
}else {
answer -= i;
}
}
return answer;
}
static int numOfDivisor(int num){
int count = 0;
for(int i = 1; i <= Math.sqrt(num); i++){
if(num % i == 0){
if(num / i == i)
count++;
else
count += 2;
}
}
return count;
}
}
약수의 개수 구하기 참고 링크
https://mygumi.tistory.com/122
효욜적인 약수 개수 구하기 알고리즘 :: 마이구미
이번 글은 약수를 구하는 알고리즘을 다뤄본다. 약수 구하는 방법은 어렵지 않다. 하지만 조금만 응용된 약수 관련 문제라면 순수한 방법으로는 시간이 너무 오래걸린다. 더 효율적인 방법을 알
mygumi.tistory.com
https://starrykss.tistory.com/1046
숫자 N의 약수의 개수 구하기
*숫자 N의 약수의 개수 구하기 1부터 N까지 for문을 돌리면서 나누어 떨어지는 수가 있으면(i % N == 0) 카운트를 증가시켜(count++) 최종적으로 카운터를 출력하면 끝. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16..
starrykss.tistory.com
'Programming > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 3진법 뒤집기 (java) (0) | 2021.06.27 |
---|---|
[프로그래머스] 내적(java) (0) | 2021.06.27 |
[프로그래머스] 음양 더하기 (java) (0) | 2021.06.27 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (java) (0) | 2021.06.27 |
[프로그래머스] 길 찾기 게임 (java) (0) | 2020.04.24 |