πŸ’‘ Level 1 | μ•½μˆ˜μ˜ κ°œμˆ˜μ™€ λ§μ…ˆ (JavaScript)

rimmzΒ·2022λ…„ 5μ›” 13일
0

programmers

λͺ©λ‘ 보기
6/15
post-thumbnail

πŸ“Œ 문제

  • 두 μ •μˆ˜ left와 rightκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. leftλΆ€ν„° rightκΉŒμ§€μ˜ λͺ¨λ“  μˆ˜λ“€ μ€‘μ—μ„œ, μ•½μˆ˜μ˜ κ°œμˆ˜κ°€ 짝수인 μˆ˜λŠ” λ”ν•˜κ³ , μ•½μˆ˜μ˜ κ°œμˆ˜κ°€ ν™€μˆ˜μΈ μˆ˜λŠ” λΊ€ 수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

https://programmers.co.kr/learn/courses/30/lessons/77884

πŸ“ 문제 풀이

// μ•½μˆ˜ 개수 κ΅¬ν•˜κΈ°
function getDivisors(num) {
  let count = 0;

  for (let i = 1; i <= num; i++) {
    if (num % i === 0) count++;
  }

  return count;
}

function solution(left, right) {
  let answer = 0;

  for (let i = left; i <= right; i++) {
    if (getDivisors(i) % 2 === 0) {
      answer += i;
    } else {
      answer -= i;
    }
  }

  return answer;
}

πŸ’¬ 정리

  • num의 μ•½μˆ˜ 개수 κ΅¬ν•˜κΈ°
function getDivisors(num) {
  let count = 0;

  for (let i = 1; i <= num; i++) {
    if (num % i === 0) count++;
  }

  return count;
}

🌿 λ‹€λ₯Έ μ‚¬λžŒμ˜ 풀이

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;
}
  • μ œκ³±κ·Όμ„ μ΄μš©ν•˜μ—¬ μ•½μˆ˜μ˜ 개수λ₯Ό ν™•μΈν•˜λŠ” 문제 풀이 방법
    Math.sqrt() : 숫자의 μ œκ³±κ·Όμ„ λ°˜ν™˜
    Number.isInteger() : 주어진 값이 μ •μˆ˜μΈμ§€ νŒλ³„
    Number.isInteger(Math.sqrt(num)) : num의 제곱근이 μ •μˆ˜ 일 경우 μ•½μˆ˜μ˜ κ°œμˆ˜λŠ” ν™€μˆ˜ 아닐 경우 μ•½μˆ˜μ˜ κ°œμˆ˜λŠ” 짝수
profile
#μ˜μš•λ„˜μΉ˜λŠ”#πŸ’»#✨#FE#πŸ’ͺ🏻

0개의 λŒ“κΈ€