diff --git "a/level-1/\352\260\200\354\232\264\353\215\260-\352\270\200\354\236\220-\352\260\200\354\240\270\354\230\244\352\270\260.js" "b/level-1/\352\260\200\354\232\264\353\215\260-\352\270\200\354\236\220-\352\260\200\354\240\270\354\230\244\352\270\260.js" index 172c890..e3b8ca6 100644 --- "a/level-1/\352\260\200\354\232\264\353\215\260-\352\270\200\354\236\220-\352\260\200\354\240\270\354\230\244\352\270\260.js" +++ "b/level-1/\352\260\200\354\232\264\353\215\260-\352\270\200\354\236\220-\352\260\200\354\240\270\354\230\244\352\270\260.js" @@ -29,4 +29,12 @@ function solution(s) { // 홀수인 경우 - 중간지점 else answer = s[point]; return answer; -} \ No newline at end of file +} + +// 정답 4 - chaerin-dev +function solution(s) { + return s.length % 2 + ? s[parseInt(s.length / 2)] + : s[s.length / 2 - 1] + s[s.length / 2]; +} + diff --git "a/level-1/\352\260\231\354\235\200-\354\210\253\354\236\220\353\212\224-\354\213\253\354\226\264.js" "b/level-1/\352\260\231\354\235\200-\354\210\253\354\236\220\353\212\224-\354\213\253\354\226\264.js" index 032bed6..56ccfff 100644 --- "a/level-1/\352\260\231\354\235\200-\354\210\253\354\236\220\353\212\224-\354\213\253\354\226\264.js" +++ "b/level-1/\352\260\231\354\235\200-\354\210\253\354\236\220\353\212\224-\354\213\253\354\226\264.js" @@ -14,4 +14,12 @@ function solution(arr) { answer[answer.length - 1] !== arr[i] ? answer.push(arr[i]) : null } return answer; -} \ No newline at end of file +} + +//정답 3 - chaerin-dev +function solution(arr) { + // 콜백함수의 조건을 만족하는 '모든' 값을 배열로 반환하고, + // 조건을 만족하는 값이 없으면 빈 배열을 반환하는 filter 메서드 활용 + // 첫 번째 요소의 경우 undefined와 비교 + return arr.filter((item, index) => item !== arr[index - 1]); +} diff --git "a/level-1/\353\202\230\353\210\204\354\226\264-\353\226\250\354\226\264\354\247\200\353\212\224-\354\210\253\354\236\220-\353\260\260\354\227\264.js" "b/level-1/\353\202\230\353\210\204\354\226\264-\353\226\250\354\226\264\354\247\200\353\212\224-\354\210\253\354\236\220-\353\260\260\354\227\264.js" index cb00c8f..9c6fc43 100644 --- "a/level-1/\353\202\230\353\210\204\354\226\264-\353\226\250\354\226\264\354\247\200\353\212\224-\354\210\253\354\236\220-\353\260\260\354\227\264.js" +++ "b/level-1/\353\202\230\353\210\204\354\226\264-\353\226\250\354\226\264\354\247\200\353\212\224-\354\210\253\354\236\220-\353\260\260\354\227\264.js" @@ -17,4 +17,13 @@ function solution(arr, divisor) { answer.length === 0 ? answer.push(-1) : null answer.sort((a, b) => a - b) return answer; +} + +//정답 3. chaerin-dev +function solution(arr, divisor) { + let answer = []; + arr.forEach((e) => { + if (e % divisor === 0) answer.push(e); + }); + return answer.length ? answer.sort((a, b) => a - b) : [-1]; } \ No newline at end of file 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 2bdcc86..ae8ce72 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" @@ -17,3 +17,13 @@ function solution(s) { return p == y ? true : false; } + +//정답 3 - chaerin-dev +function solution(s) { + let pCount = s.split(/p/i).length - 1; + let yCount = s.split(/y/i).length - 1; + return pCount === yCount; +} +// 문자열에서 특정 문자의 개수를 구하려면 split을 사용하면 된다. +// Ex. "ababb".split("a") 의 결과는 ["", "b", "bb"] +// => 즉, "a"의 갯수는 3에서 1을 뺀 2 diff --git "a/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-\353\247\210\354\235\214\353\214\200\353\241\234-\354\240\225\353\240\254\355\225\230\352\270\260.js" "b/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-\353\247\210\354\235\214\353\214\200\353\241\234-\354\240\225\353\240\254\355\225\230\352\270\260.js" index 668538f..3d7cce9 100644 --- "a/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-\353\247\210\354\235\214\353\214\200\353\241\234-\354\240\225\353\240\254\355\225\230\352\270\260.js" +++ "b/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264-\353\247\210\354\235\214\353\214\200\353\241\234-\354\240\225\353\240\254\355\225\230\352\270\260.js" @@ -10,4 +10,15 @@ function solution(strings, n) { return 0 }) return answer; -} \ No newline at end of file +} + +//정답 2 - chaerin-dev +function solution(strings, n) { + return strings.sort((a, b) => { + // 인덱스 n번째 글자를 기준으로 오름차순 정렬 + if (a[n] > b[n]) return 1; + else if (a[n] < b[n]) return -1; + // 인덱스 n번째 글자가 같으면 사전순 정렬 + else return a > b ? 1 : -1; + }); +} diff --git "a/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234-\353\260\260\354\271\230\355\225\230\352\270\260.js" "b/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234-\353\260\260\354\271\230\355\225\230\352\270\260.js" index e9bbbea..489f198 100644 --- "a/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234-\353\260\260\354\271\230\355\225\230\352\270\260.js" +++ "b/level-1/\353\254\270\354\236\220\354\227\264-\353\202\264\353\246\274\354\260\250\354\210\234\354\234\274\353\241\234-\353\260\260\354\271\230\355\225\230\352\270\260.js" @@ -9,4 +9,15 @@ function solution(s) { return 0 }).join('') return answer; -} \ No newline at end of file +} + +//정답 2 - chaerin-dev +function solution(s) { + // 문자열 -> 배열 -> 정렬 -> 순서뒤집기 -> 문자열 + return s.split("").sort().reverse().join(""); +} + +//정답3 - chaerin-dev +function solution(s) { + return s.split("").sort((a, b) => (a < b ? 1 : -1)).join(""); +} diff --git "a/level-1/\353\254\270\354\236\220\354\227\264-\353\213\244\353\243\250\352\270\260-\352\270\260\353\263\270.js" "b/level-1/\353\254\270\354\236\220\354\227\264-\353\213\244\353\243\250\352\270\260-\352\270\260\353\263\270.js" index d6e127a..fbb051e 100644 --- "a/level-1/\353\254\270\354\236\220\354\227\264-\353\213\244\353\243\250\352\270\260-\352\270\260\353\263\270.js" +++ "b/level-1/\353\254\270\354\236\220\354\227\264-\353\213\244\353\243\250\352\270\260-\352\270\260\353\263\270.js" @@ -33,3 +33,16 @@ function solution(s) { return answer; } + +//정답 4 - chaerin-dev +function solution(s) { + // 길이가 4 혹은 6이 아니면 false 반환 + if (s.length !== 4 && s.length !== 6) return false; + // 각 자리중에 숫자가 아닌 것이 하나라도 있으면 false 반환 + for (let i = 0; i < s.length; i++) { + if (isNaN(Number(s[i]))) return false; + } + // 위의 모든 조건에 포함되지 않으면 + // (길이가 4 혹은 6이고, 숫자로만 구성되어 있으면) true 반환 + return true; +} \ 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 cae7f4a..952eb80 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" @@ -12,4 +12,23 @@ function solution(n) { for (const isPrime of isPrimeArr) if (isPrime) answer += 1 answer -= 2 //인덱스 0과 1 제외 return answer; +} + +//정답 2 - chaerin-dev +// 소수인지 판별하는 함수 +function isPrime(x) { + for (let i = 2; i <= Math.sqrt(x); i++) { + if (x % i === 0) return false; + } + return true; +} +function solution(n) { + // 소수의 개수를 저장할 변수 + let answer = 0; + // 1은 소수가 아니므로 2부터 n까지 모든 수에 대해 + for (let i = 2; i <= n; i++) { + // 소수이면 소수의 개수에 1 추가 + if (isPrime(i)) answer++; + } + return answer; } \ No newline at end of file