diff --git "a/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-p\354\231\200-y\354\235\230-\352\260\234\354\210\230.js" "b/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-p\354\231\200-y\354\235\230-\352\260\234\354\210\230.js" index 99b3af7..098a7aa 100644 --- "a/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-p\354\231\200-y\354\235\230-\352\260\234\354\210\230.js" +++ "b/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-p\354\231\200-y\354\235\230-\352\260\234\354\210\230.js" @@ -24,3 +24,13 @@ function solution(s) { // 문자열에서 특정 문자의 개수를 구하려면 split을 사용하면 된다. // Ex. "ababb".split("a") 의 결과는 ["", "b", "bb"] // => 즉, "a"의 갯수는 3에서 1을 뺀 2 + +// 정답 4 - prove-ability +function solution(s){ + // 배열로 변환 + s = s.split(""); + // filter 를 사용해 갯수 추출 + const pCount = s.filter((v) => v === "p" || v === "P").length; + const yCount = s.filter((v) => v === "y" || v === "Y").length; + return pCount === yCount; +} \ No newline at end of file diff --git "a/level-1/\354\206\214\354\210\230-\354\260\276\352\270\260.js" "b/level-1/\354\206\214\354\210\230-\354\260\276\352\270\260.js" index fc922a5..d2e30a8 100644 --- "a/level-1/\354\206\214\354\210\230-\354\260\276\352\270\260.js" +++ "b/level-1/\354\206\214\354\210\230-\354\260\276\352\270\260.js" @@ -56,4 +56,25 @@ function solution(n) { if (isPrime(i)) answer++; } return answer; +} + +//정답 3 - prove-ability +// 소수 판별 로직 +function isPrime(n) { + // n 제곱근 후 올림 + for (let i = 2, len = Math.ceil(Math.sqrt(n)); i <= len; i++) { + if (n % i === 0) return false; + } + return true; +} + +function solution(n) { + let count = 0; + // 1부터 n까지 반복적으로 접근 - i + for(let i = 1; i <= n; i++) { + // i 가 소수인지 확인 후 count++ + if(isPrime(i)) count++; + } + + return count; } \ No newline at end of file diff --git "a/level-1/\354\225\275\354\210\230\354\235\230-\352\260\234\354\210\230\354\231\200-\353\215\247\354\205\210.js" "b/level-1/\354\225\275\354\210\230\354\235\230-\352\260\234\354\210\230\354\231\200-\353\215\247\354\205\210.js" index a5f2e13..097e9e9 100644 --- "a/level-1/\354\225\275\354\210\230\354\235\230-\352\260\234\354\210\230\354\231\200-\353\215\247\354\205\210.js" +++ "b/level-1/\354\225\275\354\210\230\354\235\230-\352\260\234\354\210\230\354\231\200-\353\215\247\354\205\210.js" @@ -40,4 +40,21 @@ function solution(left, right) { return answer; } -// +// 정답 4 - prove-bility +function getDivisorCount(i) { + let count = 0; + for(let j = 1; j <= i; j++) { + if(i % j === 0) count++; + } + return count; +} + +function solution(left, right) { + let answer = 0; + for(let i = left; i <= right; i++) { + let count = getDivisorCount(i); + if(count % 2 === 0) answer += i; + else answer -= i; + } + return answer; +} diff --git "a/level-1/\354\235\214\354\226\221-\353\215\224\355\225\230\352\270\260.js" "b/level-1/\354\235\214\354\226\221-\353\215\224\355\225\230\352\270\260.js" index 5ab2fc8..4f4e26a 100644 --- "a/level-1/\354\235\214\354\226\221-\353\215\224\355\225\230\352\270\260.js" +++ "b/level-1/\354\235\214\354\226\221-\353\215\224\355\225\230\352\270\260.js" @@ -42,3 +42,13 @@ function solution(absolutes, signs) { return answer; } + +// 정답 5 - prove-ability +function solution(absolutes, signs) { + let answer = 0; + absolutes.forEach((absolute, i) => { + if(!signs[i]) absolute *= -1; + answer += absolute; + }) + return answer; +} \ No newline at end of file diff --git "a/level-1/\354\240\225\354\210\230-\354\240\234\352\263\261\352\267\274-\355\214\220\353\263\204.js" "b/level-1/\354\240\225\354\210\230-\354\240\234\352\263\261\352\267\274-\355\214\220\353\263\204.js" index b5a9836..00c9cbe 100644 --- "a/level-1/\354\240\225\354\210\230-\354\240\234\352\263\261\352\267\274-\355\214\220\353\263\204.js" +++ "b/level-1/\354\240\225\354\210\230-\354\240\234\352\263\261\352\267\274-\355\214\220\353\263\204.js" @@ -12,3 +12,13 @@ function solution(n) { // x가 정수이면 x+1의 제곱 반환, x가 정수가 아니면 -1 반환 return Number.isInteger(x) ? Math.pow(x + 1, 2) : -1; } + +//정답 3 - prove-ability +function solution(n) { + // n의 제곱근을 x 초기화 + const x = Math.sqrt(n); + // 양의 정수라면 x + 1 제곱 반환 + if(Number.isInteger(x)) return Math.pow(x + 1, 2) + // 아니라면 -1 반환 + return -1; +}