-
프로그래머스 #약수의 개수와 덧셈프로그래머스 2022. 5. 8. 20:11
https://programmers.co.kr/learn/courses/30/lessons/77884
코딩테스트 연습 - 약수의 개수와 덧셈
두 정수 left와 right가 매개변수로 주어집니다. left부터 right까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주
programmers.co.kr
class Solution { public int solution(int left, int right) { int answer = 0; int div = 0; for(int i=left; i<=right; i++){ for(int j=1; j<=i; j++){ if(i%j==0) div++; } //약수의 개수 구하기 answer = div%2==0 ? answer+i : answer-i; //약수의 개수가 짝수일 경우 +, 홀수일 경우 - div = 0; } return answer; } }
-
제곱수의 경우 약수가 홀수개 (like 4,9,16), 제곱수가 아닌 경우 약수가 짝수개 임을 이용한 방법도 있었다
if(i % Math.sqrt(i) == 0) // 제곱수일 경우 약수는 홀수개
메소드를 사용해서 제곱수인지 확인하고 제곱수라면 -, 아니라면(else) +
이 방법을 사용하니 속도가 매우 잘나온다..!!
'프로그래머스' 카테고리의 다른 글
프로그래머스 #가운데 글자 가져오기 (0) 2022.05.12 프로그래머스 #같은 숫자는 싫어 (0) 2022.05.08 프로그래머스 #2016년 (0) 2022.05.06 프로그래머스 #내적 (0) 2022.05.06 프로그래머스 #모의고사 (0) 2022.05.03