-
[Programmers] 프로그래머스 1단계 : 약수의 개수와 덧셈Algorithm/Programmers Lv.1 2023. 5. 11. 11:52
💡 문제 설명
두 정수 left 와 right 가 매개변수로 주어집니다. left 부터 right 까지의 모든 수들 중에서, 약수의 개수가 짝수인 수는 더하고, 약수의 개수가 홀수인 수는 뺀 수를 return 하도록 solution 함수를 완성해주세요.
🚫 제한 조건
• 1 ≤ left ≤ right ≤ 1,000입출력 예
left right result 13 17 43 24 27 52 나의 풀이
function solution(left, right) { let result = 0; for(let i = left; i <= right; ++i) { // 약수 개수 let count = 0; for(let j = 1; j <= i; ++j) { if(i % j === 0) count++; } count % 2 === 0 ? result += i : result -= i; } return result; }
이중 for문으로 i의 약수의 개수를 구하고 개수가 짝수이면 result에 i를 더하고 아니면 빼는 방식으로 문제를 풀었다 😙
실행 결과 다른 사람의 풀이
function solution(left, right) { var answer = 0; for (let i = left; i <= right; i++) { if (Number.isInteger(Math.sqrt(i))) { answer -= i; } else { answer += i; } } return answer; }
📌 Numer.isInteger(value) : 전달된 값이 정수인지 여부를 알려줌 ! ➡️ 정수이면 true, 아니면 false 반환
📌 Math.sqrt(x) : 숫자의 제곱근을 반환
기억하자 ... 제곱근이 정수면 약수의 개수가 홀수다
'Algorithm > Programmers Lv.1' 카테고리의 다른 글
[Programmers] 프로그래머스 1단계 : 문자열 다루기 기본 (0) 2023.05.17 [Programmers] 프로그래머스 1단계 : 부족한 금액 계산하기 (0) 2023.05.12 [Programmers] 프로그래머스 1단계 : 문자열 내림차순으로 배치하기 (1) 2023.05.10 [Programmers] 프로그래머스 1단계 : 내적 (0) 2023.05.10 [Programmers] 프로그래머스 1단계 : 수박수박수박수박수박수? (0) 2023.05.08