diff --git a/Challenge/2doo/expDivOdd/README.md b/Challenge/2doo/expDivOdd/README.md deleted file mode 100644 index 2d5e0676..00000000 --- a/Challenge/2doo/expDivOdd/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output diff --git a/Challenge/2doo/expDivOdd/solve.js b/Challenge/2doo/expDivOdd/solve.js deleted file mode 100644 index 102382c8..00000000 --- a/Challenge/2doo/expDivOdd/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -const answer = inputArray - .filter((n) => ((n * n) % 3) % 2 == 1) - .reduce((acc, n) => acc + n, 0); -console.log(answer); diff --git a/Challenge/2doo/figureSkating/README.md b/Challenge/2doo/figureSkating/README.md deleted file mode 100644 index bfaa0743..00000000 --- a/Challenge/2doo/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -* 점수가 가장 높은 사람이 1등이다. -* 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -* 기술점수(TES)는 기본점수 * 수행점수(GOE)를 합산해 도출한다. -* 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -* 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -* 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 999 } ] diff --git a/Challenge/2doo/figureSkating/solve.js b/Challenge/2doo/figureSkating/solve.js deleted file mode 100644 index 8a9aa033..00000000 --- a/Challenge/2doo/figureSkating/solve.js +++ /dev/null @@ -1,89 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: "김연아", - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: "피겨의 신", - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: "아사다 마오", - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -]; - -// write your codes - -const isQualifiedAct = (act) => - Object.entries(baseAssignment).every((entry) => { - const [goeKey, goeRequiredCount] = entry; - const goeTries = act.goe[goeKey]; - - return goeTries.length >= goeRequiredCount; - }); - -const leaveMaxThree = (act) => ({ - ...act, - goe: { - ...act.goe, - jump: act.goe.jump.sort().slice(-3), - spin: act.goe.spin.sort().slice(-3), - }, -}); - -const getActResult = (act) => { - const tesScore = Object.entries(baseScore).reduce((acc, entry) => { - const [goeKey, goeBaseScore] = entry; - const goeTries = act.goe[goeKey]; - const goeScore = goeTries.reduce((acc, n) => acc + n, 0); - - return acc + goeBaseScore * goeScore; - }, 0); - - return { - name: act.name, - score: tesScore + act.pcs - act.penalty, - }; -}; - -const descendingCompareByScore = (a, b) => b.score - a.score; - -const answer = inputArray - .filter(isQualifiedAct) - .map(leaveMaxThree) - .map(getActResult) - .sort(descendingCompareByScore); - -console.log(answer); diff --git a/Challenge/2doo/filterAge/README.md b/Challenge/2doo/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/2doo/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/2doo/filterAge/solve.js b/Challenge/2doo/filterAge/solve.js deleted file mode 100644 index b73a877d..00000000 --- a/Challenge/2doo/filterAge/solve.js +++ /dev/null @@ -1,24 +0,0 @@ -const inputArray = [ - { - name: "영미", - age: 25, - }, - { - name: "일미", - age: 35, - }, - { - name: "이미", - age: 45, - }, - { - name: "삼미", - age: 55, - }, -]; -// write your codes - -const answer = inputArray.filter( - (person) => person.age >= 30 && person.age < 50 -); -console.log(answer); diff --git a/Challenge/2doo/filterIntersection/README.md b/Challenge/2doo/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/2doo/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/2doo/filterIntersection/solve.js b/Challenge/2doo/filterIntersection/solve.js deleted file mode 100644 index 9f1455da..00000000 --- a/Challenge/2doo/filterIntersection/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -const answer = A.filter((n) => B.includes(n)); -console.log(answer); diff --git a/Challenge/2doo/filterOdd/README.md b/Challenge/2doo/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/2doo/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/2doo/filterOdd/solve.js b/Challenge/2doo/filterOdd/solve.js deleted file mode 100644 index 4c50aec7..00000000 --- a/Challenge/2doo/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const answer = inputArray.filter((n) => n % 2 == 1); -console.log(answer); diff --git a/Challenge/2doo/findWord/README.md b/Challenge/2doo/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/2doo/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/2doo/findWord/solve.js b/Challenge/2doo/findWord/solve.js deleted file mode 100644 index 15d15f45..00000000 --- a/Challenge/2doo/findWord/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = ["잠", "자", "고", "싶", "다", "용가리"]; - -// write your codes - -const answer = inputArray.includes("용가리"); -console.log(answer); diff --git a/Challenge/2doo/forEachFilter/README.md b/Challenge/2doo/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/2doo/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/2doo/forEachFilter/solve.js b/Challenge/2doo/forEachFilter/solve.js deleted file mode 100644 index 099c9e8f..00000000 --- a/Challenge/2doo/forEachFilter/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.filter((n) => n >= 40); -console.log(answer); diff --git a/Challenge/2doo/forEachFilterIsNaN/README.md b/Challenge/2doo/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/2doo/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/2doo/forEachFilterIsNaN/solve.js b/Challenge/2doo/forEachFilterIsNaN/solve.js deleted file mode 100644 index f2962283..00000000 --- a/Challenge/2doo/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [1, 40, "라매", "개발자", 51.5, "a", 88]; - -// write your codes - -const answer = inputArray.filter((n) => !isNaN(n)); -console.log(answer); diff --git a/Challenge/2doo/forEachMap/README.md b/Challenge/2doo/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/2doo/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/2doo/forEachMap/solve.js b/Challenge/2doo/forEachMap/solve.js deleted file mode 100644 index 3a8f5409..00000000 --- a/Challenge/2doo/forEachMap/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let answer = []; -inputArray.forEach((n) => { - answer.push(`${n}%`); -}); - -console.log(answer); diff --git a/Challenge/2doo/forEachReduce/README.md b/Challenge/2doo/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/2doo/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/2doo/forEachReduce/solve.js b/Challenge/2doo/forEachReduce/solve.js deleted file mode 100644 index a6d87a98..00000000 --- a/Challenge/2doo/forEachReduce/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let answer = 0; - -inputArray.forEach((n) => { - answer += n; -}); - -console.log(answer); diff --git a/Challenge/2doo/mapAddPercent/README.md b/Challenge/2doo/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/2doo/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/2doo/mapAddPercent/solve.js b/Challenge/2doo/mapAddPercent/solve.js deleted file mode 100644 index 06841059..00000000 --- a/Challenge/2doo/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.map((n) => `${n}%`); -console.log(answer); diff --git a/Challenge/2doo/mapAppendOrder/README.md b/Challenge/2doo/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/2doo/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/2doo/mapAppendOrder/solve.js b/Challenge/2doo/mapAppendOrder/solve.js deleted file mode 100644 index 118d0aa0..00000000 --- a/Challenge/2doo/mapAppendOrder/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = ["홍길동", "둘리", "루피"]; - -// write your codes - -const answer = inputArray.map((name, idx) => ({ - name, - order: idx + 1, -})); - -console.log(answer); diff --git a/Challenge/2doo/reduceMaxValueNIndex/README.md b/Challenge/2doo/reduceMaxValueNIndex/README.md deleted file mode 100644 index 02a22b52..00000000 --- a/Challenge/2doo/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/2doo/reduceMaxValueNIndex/solve.js b/Challenge/2doo/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 3f74e449..00000000 --- a/Challenge/2doo/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,16 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes - -const answer = inputArray.reduce( - (acc, n, idx) => { - if (n < acc.maxValue) { - return acc; - } - - return { maxValue: n, idx }; - }, - { maxValue: -1, idx: -1 } -); - -console.log(answer); diff --git a/Challenge/2doo/reduceNameNickname/README.md b/Challenge/2doo/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/2doo/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/2doo/reduceNameNickname/solve.js b/Challenge/2doo/reduceNameNickname/solve.js deleted file mode 100644 index 761a0842..00000000 --- a/Challenge/2doo/reduceNameNickname/solve.js +++ /dev/null @@ -1,26 +0,0 @@ -const inputArray = [ - { - name: "홍길동", - nickname: "hong", - }, - { - name: "둘리", - nickname: "2li", - }, - { - name: "오스트랄로피테쿠스", - nickname: "1Cin", - }, -]; - -// write your codes - -const answer = inputArray.reduce( - (acc, obj) => ({ - ...acc, - [obj.nickname]: obj.name, - }), - {} -); - -console.log(answer); diff --git a/Challenge/2doo/reduceSum/README.md b/Challenge/2doo/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/2doo/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/2doo/reduceSum/solve.js b/Challenge/2doo/reduceSum/solve.js deleted file mode 100644 index 809151e2..00000000 --- a/Challenge/2doo/reduceSum/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -const answer = inputArray.reduce((acc, n) => acc + n, 0); - -console.log(answer); diff --git a/Challenge/2doo/sortByPrice/README.md b/Challenge/2doo/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/2doo/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/2doo/sortByPrice/solve.js b/Challenge/2doo/sortByPrice/solve.js deleted file mode 100644 index 5cf055b7..00000000 --- a/Challenge/2doo/sortByPrice/solve.js +++ /dev/null @@ -1,24 +0,0 @@ -const inputArray = [ - { - name: "사과", - price: 1000, - }, - { - name: "수박", - price: 5000, - }, - { - name: "당근", - price: 2000, - }, - { - name: "참외", - price: 10000, - }, -]; - -// write your codes - -const answer = inputArray.sort((a, b) => a.price - b.price); - -console.log(answer); diff --git a/Challenge/2doo/sortByPriceAndQuantity/README.md b/Challenge/2doo/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/2doo/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/2doo/sortByPriceAndQuantity/solve.js b/Challenge/2doo/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 70de4680..00000000 --- a/Challenge/2doo/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,35 +0,0 @@ -const inputArray = [ - { - name: "사과", - price: 1000, - quantity: 2, - }, - { - name: "수박", - price: 5000, - quantity: 20, - }, - { - name: "당근", - price: 2000, - quantity: 50, - }, - { - name: "참외", - price: 5000, - quantity: 10, - }, - { - name: "오이", - price: 2000, - quantity: 49, - }, -]; - -// write your codes - -const answer = inputArray.sort( - (a, b) => a.price - b.price || a.quantity - b.quantity -); - -console.log(answer); diff --git a/Challenge/2o1da/forEachFilter/README.md b/Challenge/2o1da/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/2o1da/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/2o1da/forEachFilter/solve.js b/Challenge/2o1da/forEachFilter/solve.js deleted file mode 100644 index 960d8e36..00000000 --- a/Challenge/2o1da/forEachFilter/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.filter(function (element) { - return element >= 40; -}); - -console.log(answer); diff --git a/Challenge/amunre21/everyArray/solve.js b/Challenge/amunre21/everyArray/solve.js deleted file mode 100644 index 4f23c07f..00000000 --- a/Challenge/amunre21/everyArray/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [2, 4, 6, 8, 10]; - -// write your codes -const answer = inputArray.every(el => el%2===0); -console.log(answer) \ No newline at end of file diff --git a/Challenge/amunre21/expDivOdd/README.md b/Challenge/amunre21/expDivOdd/README.md deleted file mode 100644 index 2d5e0676..00000000 --- a/Challenge/amunre21/expDivOdd/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output diff --git a/Challenge/amunre21/expDivOdd/solve.js b/Challenge/amunre21/expDivOdd/solve.js deleted file mode 100644 index 1f1336a0..00000000 --- a/Challenge/amunre21/expDivOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [ 1, 7, 3, 4, 6 ]; - -// write your codes -// 제곱한뒤 3으로 나눠서 1이 남는 값만 남깁니다 -> 남은 값들을 누산하여 반환합니다. -let answer = inputArray.filter(el => el**2%3==1).reduce((acc,cur)=>{return acc+cur;}); - -console.log(answer) \ No newline at end of file diff --git a/Challenge/amunre21/figureSkating/README.md b/Challenge/amunre21/figureSkating/README.md deleted file mode 100644 index 648eeaa4..00000000 --- a/Challenge/amunre21/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -* 점수가 가장 높은 사람이 1등이다. -* 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -* 기술점수(TES)는 기본점수 * 수행점수(GOE)를 합산해 도출한다. -* 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -* 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -* 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 939 } ] diff --git a/Challenge/amunre21/figureSkating/solve.js b/Challenge/amunre21/figureSkating/solve.js deleted file mode 100644 index c621df3c..00000000 --- a/Challenge/amunre21/figureSkating/solve.js +++ /dev/null @@ -1,72 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -} - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -} - -const inputArray = [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000] - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -] - -// write your codes - -const answer = inputArray.filter((el)=>{ - return el.goe.jump.length >= baseAssignment.jump && - el.goe.spin.length >= baseAssignment.spin && - el.goe.step.length >= baseAssignment.step; -}).map((v) => { - let result = 0; - // TES 계산 - result += v.goe.jump.sort((a,b) => b-a).slice(0,baseAssignment.jump).reduce((acc,cur)=>{return acc+cur*baseScore.jump;},0); - result += v.goe.spin.sort((a,b) => b-a).slice(0,baseAssignment.spin).reduce((acc,cur)=>{return acc+cur*baseScore.spin;},0); - result += v.goe.step.sort((a,b) => b-a).slice(0,baseAssignment.step).reduce((acc,cur)=>{return acc+cur*baseScore.step;},0); - // PCS 계산 - result += v.pcs; - // penalty 계산 - result -= v.penalty; - - return { - name : v.name, - score : result - }; -}).sort((a,b)=>{ - return b.score - a.score; -}); - -console.log(answer) \ No newline at end of file diff --git a/Challenge/amunre21/filterAge/README.md b/Challenge/amunre21/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/amunre21/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/amunre21/filterAge/solve.js b/Challenge/amunre21/filterAge/solve.js deleted file mode 100644 index 27e6c061..00000000 --- a/Challenge/amunre21/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes - -const answer = inputArray.filter(el=>el.age>=30&&el.age<50) -console.log(answer) \ No newline at end of file diff --git a/Challenge/amunre21/filterIntersection/README.md b/Challenge/amunre21/filterIntersection/README.md deleted file mode 100644 index edac1a32..00000000 --- a/Challenge/amunre21/filterIntersection/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] - -## Test - -```npm test``` -- jest를 사용해서 test했습니다. -- require를 사용하는 commonJS환경입니다. \ No newline at end of file diff --git a/Challenge/amunre21/filterIntersection/solve.js b/Challenge/amunre21/filterIntersection/solve.js deleted file mode 100644 index 8557245e..00000000 --- a/Challenge/amunre21/filterIntersection/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const A4 = [1, 3, 5, 7, 12, 21, 16, 24, 17, 93, 26]; -const B4 = [3, 7, 133, 134, 25, 17, 21, 22]; -// write your codes - -exports.answer = function(A,B){ - return A.filter(el => B.includes(el)); -}; \ No newline at end of file diff --git a/Challenge/amunre21/filterIntersection/solve.test.js b/Challenge/amunre21/filterIntersection/solve.test.js deleted file mode 100644 index 60640704..00000000 --- a/Challenge/amunre21/filterIntersection/solve.test.js +++ /dev/null @@ -1,35 +0,0 @@ -const solve = require('./solve'); - -const A1 = [1, 2, 3, 4, 5]; -const B1 = [3, 4, 5, 6, 7]; -const result1 = [3, 4, 5]; - -const A2 = [1, 2, 3, 4, 5]; -const B2 = [5, 6, 7, 8, 9]; -const result2 = [5]; - -const A3 = [2, 4, 6, 8, 10, 12]; -const B3 = [3, 6, 9, 12]; -const result3 = [6, 12]; - -const A4 = [1, 3, 5, 7, 12, 21, 16, 24, 17, 93, 26]; -const B4 = [3, 7, 133, 134, 25, 17, 21, 22]; -const result4 = [3, 7, 21, 17]; - -describe("simple test",() =>{ - test("test 1",() => { - expect(solve.answer(A1,B1)).toEqual(result1); - }); - - test("test 2",() => { - expect(solve.answer(A2,B2)).toEqual(result2); - }); - - test("test 3",() => { - expect(solve.answer(A3,B3)).toEqual(result3); - }); - - test("test 4",() => { - expect(solve.answer(A4,B4)).toEqual(result4); - }); -}) \ No newline at end of file diff --git a/Challenge/amunre21/filterOdd/README.md b/Challenge/amunre21/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/amunre21/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/amunre21/filterOdd/solve.js b/Challenge/amunre21/filterOdd/solve.js deleted file mode 100644 index 07a84410..00000000 --- a/Challenge/amunre21/filterOdd/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -exports.answer = function(arr){ - return arr.filter(el => el%2==1); -} - diff --git a/Challenge/amunre21/filterOdd/solve.test.js b/Challenge/amunre21/filterOdd/solve.test.js deleted file mode 100644 index 150a7eab..00000000 --- a/Challenge/amunre21/filterOdd/solve.test.js +++ /dev/null @@ -1,31 +0,0 @@ -const solve = require('./solve'); - -const input1 = [4, 2, 5, 1, 3]; -const result1 = [5, 1, 3]; - -const input2 = [1, 17, 5, 2, 3, 9]; -const result2 = [1, 17, 5, 3, 9]; - -const input3 = [4, 2, 6, 8, 50, 16]; -const result3 = []; - -const input4 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11]; -const result4 = [1, 3, 5, 7, 9, 11]; - -describe("simple test",() =>{ - test("test 1",() => { - expect(solve.answer(input1)).toEqual(result1); - }); - - test("test 2",() => { - expect(solve.answer(input2)).toEqual(result2); - }); - - test("test 3",() => { - expect(solve.answer(input3)).toEqual(result3); - }); - - test("test 4",() => { - expect(solve.answer(input4)).toEqual(result4); - }); -}) \ No newline at end of file diff --git a/Challenge/amunre21/findWord/README.md b/Challenge/amunre21/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/amunre21/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/amunre21/findWord/solve.js b/Challenge/amunre21/findWord/solve.js deleted file mode 100644 index fb98244e..00000000 --- a/Challenge/amunre21/findWord/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.includes('용가리'); -} - -exports.solution = solution; diff --git a/Challenge/amunre21/findWord/solve.test.js b/Challenge/amunre21/findWord/solve.test.js deleted file mode 100644 index 3e88a818..00000000 --- a/Challenge/amunre21/findWord/solve.test.js +++ /dev/null @@ -1,26 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['잠', '자', '고', '싶', '다', '용가리'], - answer: true, -}; -const test2 = { - input: ['맛있는', '용가리치킨'], - answer: false, -}; -const test3 = { - input: ['고질라', '용가리 ', '울트라맨'], - answer: false, -}; - -describe('findWord', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/amunre21/forEachFilter/README.md b/Challenge/amunre21/forEachFilter/README.md deleted file mode 100644 index 6dcbc7c2..00000000 --- a/Challenge/amunre21/forEachFilter/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. diff --git a/Challenge/amunre21/forEachFilter/solve.js b/Challenge/amunre21/forEachFilter/solve.js deleted file mode 100644 index c8e6af2b..00000000 --- a/Challenge/amunre21/forEachFilter/solve.js +++ /dev/null @@ -1,19 +0,0 @@ -// write your codes - -// use filter -function solution(inputArray) { - return inputArray.filter(el => el>=40); -} - -// use forEach -function solution2(inputArray) { - let result = []; - inputArray.forEach(el => { - if(el>=40){ - result.push(el); - } - }) - return result; -} - -exports.solution = solution; diff --git a/Challenge/amunre21/forEachFilter/solve.test.js b/Challenge/amunre21/forEachFilter/solve.test.js deleted file mode 100644 index 3d73b25c..00000000 --- a/Challenge/amunre21/forEachFilter/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: [100, 40], -}; - -describe('forEachFilter', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/forEachFilterIsNaN/README.md b/Challenge/amunre21/forEachFilterIsNaN/README.md deleted file mode 100644 index 570c030e..00000000 --- a/Challenge/amunre21/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. diff --git a/Challenge/amunre21/forEachFilterIsNaN/solve.js b/Challenge/amunre21/forEachFilterIsNaN/solve.js deleted file mode 100644 index c7531c09..00000000 --- a/Challenge/amunre21/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// write your codes -// 유한수만 뽑는 isFinite 메서드를 사용. -function solution(inputArray) { - return inputArray.filter(el => Number.isFinite(el)) -} - -exports.solution = solution; diff --git a/Challenge/amunre21/forEachFilterIsNaN/solve.test.js b/Challenge/amunre21/forEachFilterIsNaN/solve.test.js deleted file mode 100644 index d7e56a46..00000000 --- a/Challenge/amunre21/forEachFilterIsNaN/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 40, '라매', '개발자', 51.5, 'a', 88], - answer: [1, 40, 51.5, 88], -}; - -const test2 = { - input: [1, 2, 3, '4', 5, '6'], - answer: [1, 2, 3, 5], -}; - -const test3 = { - input: [-3, -2, -1, 0, 1, 2, 3], - answer: [-3, -2, -1, 0, 1, 2, 3], -}; - -describe('forEachFilterIsNaN', () => { - test('test1: 숫자,문자 판별', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2: 문자로된 숫자 판별', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3: 음수 양수 포함', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/amunre21/forEachMap/README.md b/Challenge/amunre21/forEachMap/README.md deleted file mode 100644 index 1e8e03c8..00000000 --- a/Challenge/amunre21/forEachMap/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 diff --git a/Challenge/amunre21/forEachMap/solve.js b/Challenge/amunre21/forEachMap/solve.js deleted file mode 100644 index bf94e6c4..00000000 --- a/Challenge/amunre21/forEachMap/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map(el => el+'%'); -} - -exports.solution = solution; diff --git a/Challenge/amunre21/forEachMap/solve.test.js b/Challenge/amunre21/forEachMap/solve.test.js deleted file mode 100644 index de4868c6..00000000 --- a/Challenge/amunre21/forEachMap/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: ['100%', '10%', '20%', '40%'], -}; - -describe('forEachMap', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/forEachReduce/README.md b/Challenge/amunre21/forEachReduce/README.md deleted file mode 100644 index a984df2d..00000000 --- a/Challenge/amunre21/forEachReduce/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 diff --git a/Challenge/amunre21/forEachReduce/solve.js b/Challenge/amunre21/forEachReduce/solve.js deleted file mode 100644 index 0926029b..00000000 --- a/Challenge/amunre21/forEachReduce/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc,cur)=>{ - return acc+cur; - }) -} - -exports.solution = solution; diff --git a/Challenge/amunre21/forEachReduce/solve.test.js b/Challenge/amunre21/forEachReduce/solve.test.js deleted file mode 100644 index 397e4b50..00000000 --- a/Challenge/amunre21/forEachReduce/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: 170, -}; - -const test2 = { - input: [120, -20, -30, 0, 15], - answer: 85, -}; - -const test3 = { - input: [-10, -20, -30], - answer: -60, -}; - -describe('forEachReduce', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2: 음수가 포함된 계산', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3: 음수만 존재하는 계산', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/amunre21/mapAddPercent/README.md b/Challenge/amunre21/mapAddPercent/README.md deleted file mode 100644 index 75e73042..00000000 --- a/Challenge/amunre21/mapAddPercent/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 diff --git a/Challenge/amunre21/mapAddPercent/solve.js b/Challenge/amunre21/mapAddPercent/solve.js deleted file mode 100644 index bf94e6c4..00000000 --- a/Challenge/amunre21/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map(el => el+'%'); -} - -exports.solution = solution; diff --git a/Challenge/amunre21/mapAddPercent/solve.test.js b/Challenge/amunre21/mapAddPercent/solve.test.js deleted file mode 100644 index dac1b3cc..00000000 --- a/Challenge/amunre21/mapAddPercent/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: ['100%', '10%', '20%', '40%'], -}; - -describe('mapAddPercent', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/mapAppendOrder/README.md b/Challenge/amunre21/mapAppendOrder/README.md deleted file mode 100644 index 1435623a..00000000 --- a/Challenge/amunre21/mapAppendOrder/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 diff --git a/Challenge/amunre21/mapAppendOrder/solve.js b/Challenge/amunre21/mapAppendOrder/solve.js deleted file mode 100644 index bc799c0e..00000000 --- a/Challenge/amunre21/mapAppendOrder/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map((el,idx)=>{return{name:el,order:idx+1}}) -} - -exports.solution = solution; diff --git a/Challenge/amunre21/mapAppendOrder/solve.test.js b/Challenge/amunre21/mapAppendOrder/solve.test.js deleted file mode 100644 index e08db10c..00000000 --- a/Challenge/amunre21/mapAppendOrder/solve.test.js +++ /dev/null @@ -1,16 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['홍길동', '둘리', '루피'], - answer: [ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 }, - ], -}; - -describe('mapAppendOrder', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/recommendAd/README.md b/Challenge/amunre21/recommendAd/README.md deleted file mode 100644 index 132e8800..00000000 --- a/Challenge/amunre21/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/amunre21/recommendAd/solve.js b/Challenge/amunre21/recommendAd/solve.js deleted file mode 100644 index 8200282f..00000000 --- a/Challenge/amunre21/recommendAd/solve.js +++ /dev/null @@ -1,19 +0,0 @@ -const userHistory = [ - { date: '2020-11-03', watched: ['KT', 'BBQ'] }, - { date: '2020-11-04', watched: ['정관장', 'KT', '딱좋은데이'] }, - { date: '2020-11-05', watched: ['그랑사가', '농심'] }, - { date: '2020-11-06', watched: ['BBQ'] }, - { date: '2020-11-07', watched: ['쌍용자동차', 'BBQ', 'KT'] }, - { date: '2020-11-08', watched: ['켈로그코리아', '빙그레'] }, - { date: '2020-11-09', watched: ['KT', '그랑사가', '빙그레'] }, -]; - -// write your codes -function solution(inputArray) { - //set도 가능한데 중복제거에 크게 의의를 두지않아서 concat을 사용함. - let watch_list = []; - userHistory.forEach(el=>watch_list = watch_list.concat(el.watched)); - return inputArray.filter(el=>!watch_list.includes(el)); -} - -exports.solution = solution; diff --git a/Challenge/amunre21/recommendAd/solve.test.js b/Challenge/amunre21/recommendAd/solve.test.js deleted file mode 100644 index 8a0f6464..00000000 --- a/Challenge/amunre21/recommendAd/solve.test.js +++ /dev/null @@ -1,23 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - '동원F&B', - '정관장', - 'KT', - 'BBQ', - '그랑사가', - '농심', - '딱좋은데이', - '빙그레', - '쌍용자동차', - '켈로그코리아', - ], - answer: ['동원F&B'], -}; - -describe('recommendAd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/reduceMaxValueNIndex/README.md b/Challenge/amunre21/reduceMaxValueNIndex/README.md deleted file mode 100644 index 965bdec6..00000000 --- a/Challenge/amunre21/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 diff --git a/Challenge/amunre21/reduceMaxValueNIndex/solve.js b/Challenge/amunre21/reduceMaxValueNIndex/solve.js deleted file mode 100644 index fd192adb..00000000 --- a/Challenge/amunre21/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc,cur,idx)=>{ - return (acc.maxValue >= cur) ? acc : {maxValue:cur, idx:idx}; - },{maxValue:Number.NEGATIVE_INFINITY,idx:-1}) -} - -exports.solution = solution; diff --git a/Challenge/amunre21/reduceMaxValueNIndex/solve.test.js b/Challenge/amunre21/reduceMaxValueNIndex/solve.test.js deleted file mode 100644 index 0daef5b8..00000000 --- a/Challenge/amunre21/reduceMaxValueNIndex/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [3, 29, 38, 12, 57, 74, 40, 85, 61], - answer: { maxValue: 85, idx: 7 }, -}; - -const test2 = { - input: [-24, -2, -13, -49, -999999, -17], - answer: { maxValue: -2, idx: 1 }, -}; -//최댓값이 중복일 때에는 먼저 나온 최댓값의 인덱스를 유지하도록 설정하였습니다. -const test3 = { - input: [2, -20, 21, -874, 99, -16, -29, 99], - answer: { maxValue: 99, idx: 4 }, -}; - -describe('reduceMaxValueNIndex', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2 : 음수 테스트', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3 : 중복된 최대값 테스트', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/amunre21/reduceNameNickname/README.md b/Challenge/amunre21/reduceNameNickname/README.md deleted file mode 100644 index b6920e05..00000000 --- a/Challenge/amunre21/reduceNameNickname/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 diff --git a/Challenge/amunre21/reduceNameNickname/solve.js b/Challenge/amunre21/reduceNameNickname/solve.js deleted file mode 100644 index 7bf545f6..00000000 --- a/Challenge/amunre21/reduceNameNickname/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc,cur)=>{ - acc[cur.nickname] = cur.name; - return acc; - },{}); -} - -exports.solution = solution; diff --git a/Challenge/amunre21/reduceNameNickname/solve.test.js b/Challenge/amunre21/reduceNameNickname/solve.test.js deleted file mode 100644 index 67b74529..00000000 --- a/Challenge/amunre21/reduceNameNickname/solve.test.js +++ /dev/null @@ -1,25 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, - ], - answer: { hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' }, -}; - -describe('reduceNameNickname', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/reduceSum/README.md b/Challenge/amunre21/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/amunre21/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/amunre21/reduceSum/solve.js b/Challenge/amunre21/reduceSum/solve.js deleted file mode 100644 index 0926029b..00000000 --- a/Challenge/amunre21/reduceSum/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc,cur)=>{ - return acc+cur; - }) -} - -exports.solution = solution; diff --git a/Challenge/amunre21/reduceSum/solve.test.js b/Challenge/amunre21/reduceSum/solve.test.js deleted file mode 100644 index e83a3db9..00000000 --- a/Challenge/amunre21/reduceSum/solve.test.js +++ /dev/null @@ -1,19 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [10, 3, 20, 5, 8, 60], - answer: 106, -}; -const test2 = { - input: [10, -50, 20, 30, -10], - answer: 0, -}; - -describe('reduceSum', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/amunre21/sortByPrice/README.md b/Challenge/amunre21/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/amunre21/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/amunre21/sortByPrice/solve.js b/Challenge/amunre21/sortByPrice/solve.js deleted file mode 100644 index 73dc1d91..00000000 --- a/Challenge/amunre21/sortByPrice/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort((a,b)=>a.price-b.price); -} - -exports.solution = solution; diff --git a/Challenge/amunre21/sortByPrice/solve.test.js b/Challenge/amunre21/sortByPrice/solve.test.js deleted file mode 100644 index 3d6a3431..00000000 --- a/Challenge/amunre21/sortByPrice/solve.test.js +++ /dev/null @@ -1,34 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, - ], - answer: [ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 }, - ], -}; - -describe('sortByPrice', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/sortByPriceAndQuantity/README.md b/Challenge/amunre21/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/amunre21/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/amunre21/sortByPriceAndQuantity/solve.js b/Challenge/amunre21/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 63b91e06..00000000 --- a/Challenge/amunre21/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort((a,b)=>a.price-b.price||a.quantity-b.quantity); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/amunre21/sortByPriceAndQuantity/solve.test.js b/Challenge/amunre21/sortByPriceAndQuantity/solve.test.js deleted file mode 100644 index 424f42b7..00000000 --- a/Challenge/amunre21/sortByPriceAndQuantity/solve.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, - ], - answer: [ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 }, - ], -}; - -describe('sortByPriceAndQuantity', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/spreadOperatorMaxValue/README.md b/Challenge/amunre21/spreadOperatorMaxValue/README.md deleted file mode 100644 index 164b68a1..00000000 --- a/Challenge/amunre21/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 diff --git a/Challenge/amunre21/spreadOperatorMaxValue/solve.js b/Challenge/amunre21/spreadOperatorMaxValue/solve.js deleted file mode 100644 index 49c5cf13..00000000 --- a/Challenge/amunre21/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return `max : ${Math.max(...inputArray)}, min : ${Math.min(...inputArray)}`; -} - -exports.solution = solution; diff --git a/Challenge/amunre21/spreadOperatorMaxValue/solve.test.js b/Challenge/amunre21/spreadOperatorMaxValue/solve.test.js deleted file mode 100644 index 26f2abf9..00000000 --- a/Challenge/amunre21/spreadOperatorMaxValue/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - answer: 'max : 10, min : 1', -}; - -describe('spreadOperatorMaxValue', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/cellenar26/everyArray/README.md b/Challenge/cellenar26/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/cellenar26/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/cellenar26/everyArray/solve.js b/Challenge/cellenar26/everyArray/solve.js deleted file mode 100644 index 2584cd65..00000000 --- a/Challenge/cellenar26/everyArray/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -function solution(inputArray) { - return inputArray.every((test)); -} - -const test = (item) => item % 2 ==0; - -exports.solution = solution; diff --git a/Challenge/cellenar26/expDivOdd/README.md b/Challenge/cellenar26/expDivOdd/README.md deleted file mode 100644 index c07ab10b..00000000 --- a/Challenge/cellenar26/expDivOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. diff --git a/Challenge/cellenar26/expDivOdd/solve.js b/Challenge/cellenar26/expDivOdd/solve.js deleted file mode 100644 index 330a3a00..00000000 --- a/Challenge/cellenar26/expDivOdd/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -// 제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. -function solution(inputArray) { - let nowArr = inputArray.filter(item => ((item*item)%3)%2 ==1); - let temp = 0; - let result = 0; - nowArr.forEach(element => { - temp = element*element; - result +=temp; - }); - return result; -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/cellenar26/filterAge/README.md b/Challenge/cellenar26/filterAge/README.md deleted file mode 100644 index 873a15c1..00000000 --- a/Challenge/cellenar26/filterAge/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 diff --git a/Challenge/cellenar26/filterAge/solve.js b/Challenge/cellenar26/filterAge/solve.js deleted file mode 100644 index a9f93651..00000000 --- a/Challenge/cellenar26/filterAge/solve.js +++ /dev/null @@ -1,31 +0,0 @@ -// write your codes -// 배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 -// const inputArray = [ -// { -// name: '영미', -// age: 25, -// }, -// { -// name: '일미', -// age: 35, -// }, -// { -// name: '이미', -// age: 45, -// }, -// { -// name: '삼미', -// age: 55, -// }, -// ]; - -function solution(inputArray) { - let result = inputArray.filter(item => item.age >= 30 && item.age <50); - // console.log(item[age]); - // console.log(result); - return result; -} -// let now = solution(inputArray); -// // console.log(solution(inputArray)); -// console.log(now); -exports.solution = solution; diff --git a/Challenge/cellenar26/filterAge/solve.test.js b/Challenge/cellenar26/filterAge/solve.test.js deleted file mode 100644 index b9081601..00000000 --- a/Challenge/cellenar26/filterAge/solve.test.js +++ /dev/null @@ -1,32 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, - ], - answer: [ - { name: '일미', age: 35 }, - { name: '이미', age: 45 }, - ], -}; - -describe('filterAge', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/cellenar26/filterIntersection/README.md b/Challenge/cellenar26/filterIntersection/README.md deleted file mode 100644 index d7c9ad39..00000000 --- a/Challenge/cellenar26/filterIntersection/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! diff --git a/Challenge/cellenar26/filterIntersection/solve.js b/Challenge/cellenar26/filterIntersection/solve.js deleted file mode 100644 index 316e99a6..00000000 --- a/Challenge/cellenar26/filterIntersection/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -//두 배열의 교집합을 출력하세요! -function solution(inputArray1, inputArray2) { - const result = inputArray1.filter(item=>inputArray2.includes(item)); - return result; -} - -// let inputArray1 = [1, 2, 3, 4, 5]; -// let inputArray2 = [3, 4, 5, 6, 7]; -// let now = solution(inputArray1, inputArray2); -// console.log(now); - -exports.solution = solution; diff --git a/Challenge/cellenar26/filterIntersection/solve.test.js b/Challenge/cellenar26/filterIntersection/solve.test.js deleted file mode 100644 index 576cbc86..00000000 --- a/Challenge/cellenar26/filterIntersection/solve.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], - }, - answer: [3, 4, 5], -}; - -describe('filterIntersection', () => { - test('test1', () => { - expect(solution(test1.input.A, test1.input.B)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/cellenar26/filterOdd/README.md b/Challenge/cellenar26/filterOdd/README.md deleted file mode 100644 index cf9eda79..00000000 --- a/Challenge/cellenar26/filterOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -홀수만 뽑아 배열로 만드세요 diff --git a/Challenge/cellenar26/filterOdd/solve.js b/Challenge/cellenar26/filterOdd/solve.js deleted file mode 100644 index caef9037..00000000 --- a/Challenge/cellenar26/filterOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// write your codes -function solution(inputArray) { - const result = inputArray.filter(item => item%2==1); - return result; -} - -exports.solution = solution; diff --git a/Challenge/cellenar26/filterOdd/solve.test.js b/Challenge/cellenar26/filterOdd/solve.test.js deleted file mode 100644 index 8cfd7f5a..00000000 --- a/Challenge/cellenar26/filterOdd/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [4, 2, 5, 1, 3], - answer: [5, 1, 3], -}; - -const test2 = { - input: [4, 2, 6, 8, 50, 16], - answer: [], -}; - -const test3 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], - answer: [1, 3, 5, 7, 9, 11], -}; - -describe('filterOdd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/cellenar26/findWord/README.md b/Challenge/cellenar26/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/cellenar26/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/cellenar26/findWord/solve.js b/Challenge/cellenar26/findWord/solve.js deleted file mode 100644 index d95fdcd0..00000000 --- a/Challenge/cellenar26/findWord/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// write your codes -function solution(inputArray) { - const target = '용가리'; - return inputArray.includes(target); -} - -exports.solution = solution; diff --git a/Challenge/cellenar26/findWord/solve.test.js b/Challenge/cellenar26/findWord/solve.test.js deleted file mode 100644 index 804114f6..00000000 --- a/Challenge/cellenar26/findWord/solve.test.js +++ /dev/null @@ -1,26 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['잠', '자', '고', '싶', '다', '용가리'], - answer: true, -}; -const test2 = { - input: ['맛있는', '용가리치킨'], - answer: false, -}; -const test3 = { - input: ['고질라', '용가리 ', '울트라맨'], - answer: false, -}; - -describe('findWord', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/cellenar26/forEachFilter/README.md b/Challenge/cellenar26/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/cellenar26/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/cellenar26/forEachFilter/solve.js b/Challenge/cellenar26/forEachFilter/solve.js deleted file mode 100644 index c650fa63..00000000 --- a/Challenge/cellenar26/forEachFilter/solve.js +++ /dev/null @@ -1,14 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -function solution(inputArray) { - const result = inputArray.filter(i => i>=40); - return result; - // let result = [] ; - // result= inputArray.filter(i => i>=40); - // console.log(result); - // console.log(inputArray); -} -exports.solution = solution; - diff --git a/Challenge/cellenar26/forEachFilter/solve.test.js b/Challenge/cellenar26/forEachFilter/solve.test.js deleted file mode 100644 index 107e832d..00000000 --- a/Challenge/cellenar26/forEachFilter/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [10,20,39,40,100,300], - answer: [40,100,300] -}; - -describe('forEachFilter', ()=> { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/cellenar26/forEachFilterIsNaN/README.md b/Challenge/cellenar26/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/cellenar26/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/cellenar26/forEachFilterIsNaN/solve.js b/Challenge/cellenar26/forEachFilterIsNaN/solve.js deleted file mode 100644 index 98b75e07..00000000 --- a/Challenge/cellenar26/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes - -function solution(inputArray) { - return inputArray.filter(item => isNaN(item) == false); -} - -// let now = solution(inputArray); -// console.log(now); -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/cellenar26/forEachFilterIsNaN/solve.test.js b/Challenge/cellenar26/forEachFilterIsNaN/solve.test.js deleted file mode 100644 index 467e20a9..00000000 --- a/Challenge/cellenar26/forEachFilterIsNaN/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 40, "라매", "개발자", "유튜브",51.5, 'a', 88 ], - answer: [1,40, 51.5,88] -}; - -describe('숫자만 배열에 나아야 한다.', ()=> { - test('배열에 숫자만 남아야 한다.',()=> { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/cellenar26/forEachMap/README.md b/Challenge/cellenar26/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/cellenar26/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/cellenar26/forEachMap/solve.js b/Challenge/cellenar26/forEachMap/solve.js deleted file mode 100644 index 031336f6..00000000 --- a/Challenge/cellenar26/forEachMap/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -function solution(inputArray) { - return inputArray = inputArray.map(item => item.toString()+'%'); - // console.log(inputArray); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/cellenar26/forEachMap/solve.test.js b/Challenge/cellenar26/forEachMap/solve.test.js deleted file mode 100644 index fa902b60..00000000 --- a/Challenge/cellenar26/forEachMap/solve.test.js +++ /dev/null @@ -1,17 +0,0 @@ -const { solution } = require("./solve"); - -const test1 = { - input: [1,2,3,4,5], - answer: ['1%','2%','3%','4%','5%'] -}; - -describe('everyArrayWithForEachMap', () => { - test('숫자로만 된 배열이면 true이어야 한다.', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - // 다른 테스트 케이스 - // test('숫자로만 된 배열이 아니면 false이어야 한다.', () => { - // expect(solution(test2.input)).toEqual(test2.answer); - // }); -}); \ No newline at end of file diff --git a/Challenge/cellenar26/forEachReduce/README.md b/Challenge/cellenar26/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/cellenar26/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/cellenar26/forEachReduce/solve.js b/Challenge/cellenar26/forEachReduce/solve.js deleted file mode 100644 index a04069c2..00000000 --- a/Challenge/cellenar26/forEachReduce/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -function solution(inputArray) { - let now = 0; - inputArray.forEach(i=>now = now+i); - // console.log(now); - return now; -} -// solution(inputArray); -exports.solution = solution; diff --git a/Challenge/cellenar26/forEachReduce/solve.test.js b/Challenge/cellenar26/forEachReduce/solve.test.js deleted file mode 100644 index 6d28d511..00000000 --- a/Challenge/cellenar26/forEachReduce/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const {solution} = require('./solve'); - -const test1 = { - input: [10,20,40], - answer: 70 -}; - -describe('forEachReduce', ()=> { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/cellenar26/mapAddPercent/README.md b/Challenge/cellenar26/mapAddPercent/README.md deleted file mode 100644 index 75e73042..00000000 --- a/Challenge/cellenar26/mapAddPercent/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 diff --git a/Challenge/cellenar26/mapAddPercent/solve.js b/Challenge/cellenar26/mapAddPercent/solve.js deleted file mode 100644 index aebe7052..00000000 --- a/Challenge/cellenar26/mapAddPercent/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 -// write your codes -function solution(inputArray) { - const result = inputArray.map(item => item.toString()+"%"); - return result; -} - -exports.solution = solution; diff --git a/Challenge/cellenar26/mapAddPercent/solve.test.js b/Challenge/cellenar26/mapAddPercent/solve.test.js deleted file mode 100644 index dac1b3cc..00000000 --- a/Challenge/cellenar26/mapAddPercent/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: ['100%', '10%', '20%', '40%'], -}; - -describe('mapAddPercent', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/cellenar26/reduceMaxValueNIndex/README.md b/Challenge/cellenar26/reduceMaxValueNIndex/README.md deleted file mode 100644 index 965bdec6..00000000 --- a/Challenge/cellenar26/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 diff --git a/Challenge/cellenar26/reduceMaxValueNIndex/solve.js b/Challenge/cellenar26/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 415d6bd2..00000000 --- a/Challenge/cellenar26/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -// reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 -// write your codes -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; -function solution(inputArray) { - let result; - result = inputArray.reduce(getMaxValueWithIndex); - return result; -} - -const getMaxValueWithIndex = (acc, cur, idxx, origin)=> { - let maxValue = cur; - let idx = 0; - for (let i = 0; i maxValue) { - maxValue = origin[i]; - idx = i; - } - } - return {maxValue, idx}; -} -solution(inputArray); -exports.solution = solution; diff --git a/Challenge/cellenar26/reduceMaxValueNIndex/solve.test.js b/Challenge/cellenar26/reduceMaxValueNIndex/solve.test.js deleted file mode 100644 index bbe07133..00000000 --- a/Challenge/cellenar26/reduceMaxValueNIndex/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [3, 29, 38, 12, 57, 74, 40, 85, 61], - answer: { maxValue: 85, idx: 7 }, -}; - -describe('reduceMaxValueNIndex', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/cellenar26/reduceSum/README.md b/Challenge/cellenar26/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/cellenar26/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/cellenar26/reduceSum/solve.js b/Challenge/cellenar26/reduceSum/solve.js deleted file mode 100644 index c9c9ea7c..00000000 --- a/Challenge/cellenar26/reduceSum/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -const inputArray = [10, 3, 20, 5, 8, 60]; -function solution(inputArray) { - return inputArray.reduce((acc, currrrrrr)=>{ - return acc+currrrrrr; - }); -} -exports.solution = solution; diff --git a/Challenge/cellenar26/reduceSum/solve.test.js b/Challenge/cellenar26/reduceSum/solve.test.js deleted file mode 100644 index 046c40cb..00000000 --- a/Challenge/cellenar26/reduceSum/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [10, 3, 20, 5, 8, 60], - answer: 106, -}; - -describe('reduceSum', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/chanwoo95/filterAge/README.md b/Challenge/chanwoo95/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/chanwoo95/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/chanwoo95/filterAge/solve.js b/Challenge/chanwoo95/filterAge/solve.js deleted file mode 100644 index ebab1c49..00000000 --- a/Challenge/chanwoo95/filterAge/solve.js +++ /dev/null @@ -1,23 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes - -const result = inputArray.filter( info => info.age >= 30 && info.age < 50); - -console.log(result); diff --git a/Challenge/chanwoo95/filterIntersection/README.md b/Challenge/chanwoo95/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/chanwoo95/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/chanwoo95/filterIntersection/solve.js b/Challenge/chanwoo95/filterIntersection/solve.js deleted file mode 100644 index a69aa8d8..00000000 --- a/Challenge/chanwoo95/filterIntersection/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -const result = A.filter( item => B.includes(item)); - -console.log(result); \ No newline at end of file diff --git a/Challenge/chanwoo95/filterOdd/README.md b/Challenge/chanwoo95/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/chanwoo95/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/chanwoo95/filterOdd/solve.js b/Challenge/chanwoo95/filterOdd/solve.js deleted file mode 100644 index 5ece5348..00000000 --- a/Challenge/chanwoo95/filterOdd/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - - -const result = inputArray.filter( item => item % 2 === 1); - -console.log(result); - diff --git a/Challenge/chanwoo95/findWord/README.md b/Challenge/chanwoo95/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/chanwoo95/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/chanwoo95/findWord/solve.js b/Challenge/chanwoo95/findWord/solve.js deleted file mode 100644 index 92432896..00000000 --- a/Challenge/chanwoo95/findWord/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; - -// write your codes - -const result = inputArray.includes("용가리"); - -console.log(result); \ No newline at end of file diff --git a/Challenge/chanwoo95/forEachFilter/README.md b/Challenge/chanwoo95/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/chanwoo95/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/chanwoo95/forEachFilter/solve.js b/Challenge/chanwoo95/forEachFilter/solve.js deleted file mode 100644 index 91c85d22..00000000 --- a/Challenge/chanwoo95/forEachFilter/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.filter( item => item >= 40); -console.log(result); \ No newline at end of file diff --git a/Challenge/chanwoo95/forEachFilterIsNaN/README.md b/Challenge/chanwoo95/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/chanwoo95/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/chanwoo95/forEachFilterIsNaN/solve.js b/Challenge/chanwoo95/forEachFilterIsNaN/solve.js deleted file mode 100644 index 04ffc86b..00000000 --- a/Challenge/chanwoo95/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes - -const result = inputArray.filter( item => !isNaN(item) ); -console.log(result); \ No newline at end of file diff --git a/Challenge/chanwoo95/forEachMap/README.md b/Challenge/chanwoo95/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/chanwoo95/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/chanwoo95/forEachMap/solve.js b/Challenge/chanwoo95/forEachMap/solve.js deleted file mode 100644 index ef7cde1b..00000000 --- a/Challenge/chanwoo95/forEachMap/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = []; - -inputArray.forEach( item => { - result.push(`${item}%`); -}) - -console.log(result); \ No newline at end of file diff --git a/Challenge/chanwoo95/forEachReduce/README.md b/Challenge/chanwoo95/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/chanwoo95/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/chanwoo95/forEachReduce/solve.js b/Challenge/chanwoo95/forEachReduce/solve.js deleted file mode 100644 index 5b803b3b..00000000 --- a/Challenge/chanwoo95/forEachReduce/solve.js +++ /dev/null @@ -1,14 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let sum = 0; - -inputArray.forEach( item => sum += item); -console.log(sum); - - -// reduce() ver. -// const reducer = (accumulator, currentValue) => accumulator + currentValue; - -// console.log(inputArray.reduce(reducer)); \ No newline at end of file diff --git a/Challenge/chanwoo95/mapAddPercent/README.md b/Challenge/chanwoo95/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/chanwoo95/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/chanwoo95/mapAddPercent/solve.js b/Challenge/chanwoo95/mapAddPercent/solve.js deleted file mode 100644 index f8724149..00000000 --- a/Challenge/chanwoo95/mapAddPercent/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.map( item => `${item}%`); - -console.log(result); \ No newline at end of file diff --git a/Challenge/chanwoo95/mapAppendOrder/README.md b/Challenge/chanwoo95/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/chanwoo95/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/chanwoo95/mapAppendOrder/solve.js b/Challenge/chanwoo95/mapAppendOrder/solve.js deleted file mode 100644 index 00a8d10a..00000000 --- a/Challenge/chanwoo95/mapAppendOrder/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes - -const result = inputArray.map( (name, index) => ({ - name, - order:index+1 -})) - -console.log(result); \ No newline at end of file diff --git a/Challenge/chanwoo95/reduceSum/README.md b/Challenge/chanwoo95/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/chanwoo95/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/chanwoo95/reduceSum/solve.js b/Challenge/chanwoo95/reduceSum/solve.js deleted file mode 100644 index a3970d70..00000000 --- a/Challenge/chanwoo95/reduceSum/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - - -const result = inputArray.reduce( (acc, n) => acc+n); - -console.log(result); \ No newline at end of file diff --git a/Challenge/chinsun9/expDivOdd/README.md b/Challenge/chinsun9/expDivOdd/README.md deleted file mode 100644 index ca68f81d..00000000 --- a/Challenge/chinsun9/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -66 diff --git a/Challenge/chinsun9/expDivOdd/solve.js b/Challenge/chinsun9/expDivOdd/solve.js deleted file mode 100644 index b634522b..00000000 --- a/Challenge/chinsun9/expDivOdd/solve.js +++ /dev/null @@ -1,14 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -// 모든 원소 제곱 -// 3으로 나눈 값만 추출 -// 더하기 - -const result = inputArray - .map((value) => value * value) - .filter((value) => value % 3 === 1) - .reduce((prev, cur) => prev + cur, 0); - -console.log(result); diff --git a/Challenge/chinsun9/figureSkating/README.md b/Challenge/chinsun9/figureSkating/README.md deleted file mode 100644 index bfaa0743..00000000 --- a/Challenge/chinsun9/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -* 점수가 가장 높은 사람이 1등이다. -* 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -* 기술점수(TES)는 기본점수 * 수행점수(GOE)를 합산해 도출한다. -* 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -* 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -* 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 999 } ] diff --git a/Challenge/chinsun9/figureSkating/solve.js b/Challenge/chinsun9/figureSkating/solve.js deleted file mode 100644 index 08cc4c9d..00000000 --- a/Challenge/chinsun9/figureSkating/solve.js +++ /dev/null @@ -1,82 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -]; - -// write your codes - -// 1 필수과제 수행 검사 -// 2 점수 계산 -// 2.1 jump, spin, setp 정렬 -// 2.2 잘한 점수 합산 -// 2.3 최종 점수 계산 -// 3 score 기준 내림차순 정렬 - -const result = inputArray - .filter((entry) => { - const { jump, spin, step } = entry.goe; - return (jump.length >= baseAssignment.jump - && spin.length >= baseAssignment.spin - && step.length >= baseAssignment.step); - }) - .map((entry) => { - const { - name, pcs, penalty, goe, - } = entry; - const { jump, spin, step } = goe; - - let tes = 0; - tes += jump.sort().slice(-baseAssignment.jump).reduce((p, c) => p + c * baseScore.jump, 0); - tes += spin.sort().slice(-baseAssignment.spin).reduce((p, c) => p + c * baseScore.spin, 0); - tes += step.sort().slice(-baseAssignment.step).reduce((p, c) => p + c * baseScore.step, 0); - - return { - name, - score: tes + pcs - penalty, - }; - }) - .sort((a, b) => b.score - a.score); - -console.log(result); -// [ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 939 } ] diff --git a/Challenge/dongjay00/everyArray/README.md b/Challenge/dongjay00/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/dongjay00/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/dongjay00/everyArray/solve.js b/Challenge/dongjay00/everyArray/solve.js deleted file mode 100644 index 12d71923..00000000 --- a/Challenge/dongjay00/everyArray/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -function solution(inputArray) { - const result = inputArray.every(element => - element % 2 === 0 - ); - return result; -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/everyArray/solve.test.js b/Challenge/dongjay00/everyArray/solve.test.js deleted file mode 100644 index b03e4791..00000000 --- a/Challenge/dongjay00/everyArray/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [2, 4, 6, 8, 10], - answer: true, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: false, -}; - -describe('everyArray', () => { - test('모두 짝수면 true여야 한다.', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('홀수가 있으면 false여야 한다.', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/dongjay00/expDivOdd/solve.js b/Challenge/dongjay00/expDivOdd/solve.js deleted file mode 100644 index 0ee23163..00000000 --- a/Challenge/dongjay00/expDivOdd/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -function solution(inputArray) { - const divOddArray = inputArray - .map((num) => num ** 2) - .filter((num) => (num % 3) % 2); - const sum = divOddArray.reduce( - (accumulator, currentValue) => accumulator + currentValue, - 0 - ); - return sum; -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/expDivOdd/solve.test.js b/Challenge/dongjay00/expDivOdd/solve.test.js deleted file mode 100644 index ca37fcc3..00000000 --- a/Challenge/dongjay00/expDivOdd/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 7, 3, 4, 6], - answer: 66, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: 168, -}; - -describe('everyArray', () => { - test('1, 7, 3, 4, 6', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('2, 3, 6, 8, 10', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/dongjay00/filterAge/README.md b/Challenge/dongjay00/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/dongjay00/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/dongjay00/filterAge/solve.js b/Challenge/dongjay00/filterAge/solve.js deleted file mode 100644 index 7195d492..00000000 --- a/Challenge/dongjay00/filterAge/solve.js +++ /dev/null @@ -1,24 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes - -const filterArray = inputArray.filter(res => - res.age >= 30 && res.age < 50 -); -console.log(filterArray); \ No newline at end of file diff --git a/Challenge/dongjay00/filterIntersection/README.md b/Challenge/dongjay00/filterIntersection/README.md deleted file mode 100644 index d7c9ad39..00000000 --- a/Challenge/dongjay00/filterIntersection/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! diff --git a/Challenge/dongjay00/filterIntersection/solve.js b/Challenge/dongjay00/filterIntersection/solve.js deleted file mode 100644 index a81edd01..00000000 --- a/Challenge/dongjay00/filterIntersection/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -function solution(inputArray1, inputArray2) { - return inputArray1.filter(el => inputArray2.includes(el)); -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/filterIntersection/solve.test.js b/Challenge/dongjay00/filterIntersection/solve.test.js deleted file mode 100644 index 576cbc86..00000000 --- a/Challenge/dongjay00/filterIntersection/solve.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], - }, - answer: [3, 4, 5], -}; - -describe('filterIntersection', () => { - test('test1', () => { - expect(solution(test1.input.A, test1.input.B)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/dongjay00/filterOdd/README.md b/Challenge/dongjay00/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/dongjay00/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/dongjay00/filterOdd/solve.js b/Challenge/dongjay00/filterOdd/solve.js deleted file mode 100644 index cfaa2ab3..00000000 --- a/Challenge/dongjay00/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const oddArray = inputArray.filter(num => num % 2); -console.log(oddArray); diff --git a/Challenge/dongjay00/findWord/README.md b/Challenge/dongjay00/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/dongjay00/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/dongjay00/findWord/solve.js b/Challenge/dongjay00/findWord/solve.js deleted file mode 100644 index 24f6e193..00000000 --- a/Challenge/dongjay00/findWord/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.includes("용가리"); -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/findWord/solve.test.js b/Challenge/dongjay00/findWord/solve.test.js deleted file mode 100644 index 804114f6..00000000 --- a/Challenge/dongjay00/findWord/solve.test.js +++ /dev/null @@ -1,26 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['잠', '자', '고', '싶', '다', '용가리'], - answer: true, -}; -const test2 = { - input: ['맛있는', '용가리치킨'], - answer: false, -}; -const test3 = { - input: ['고질라', '용가리 ', '울트라맨'], - answer: false, -}; - -describe('findWord', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/dongjay00/forEachFilter/README.md b/Challenge/dongjay00/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/dongjay00/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/dongjay00/forEachFilter/solve.js b/Challenge/dongjay00/forEachFilter/solve.js deleted file mode 100644 index 22c52386..00000000 --- a/Challenge/dongjay00/forEachFilter/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -const resultArray = inputArray.filter(res => res >= 40); -console.log(resultArray); diff --git a/Challenge/dongjay00/forEachFilterIsNaN/README.md b/Challenge/dongjay00/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/dongjay00/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/dongjay00/forEachFilterIsNaN/solve.js b/Challenge/dongjay00/forEachFilterIsNaN/solve.js deleted file mode 100644 index 4b3b8c82..00000000 --- a/Challenge/dongjay00/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes -const filterArray = inputArray.filter(res => !isNaN(res)); -console.log(filterArray); diff --git a/Challenge/dongjay00/forEachMap/README.md b/Challenge/dongjay00/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/dongjay00/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/dongjay00/forEachMap/solve.js b/Challenge/dongjay00/forEachMap/solve.js deleted file mode 100644 index 20ff171d..00000000 --- a/Challenge/dongjay00/forEachMap/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let mapArray = []; -inputArray.forEach(res => { - mapArray.push(res + "%"); -}); -console.log(mapArray); \ No newline at end of file diff --git a/Challenge/dongjay00/forEachReduce/README.md b/Challenge/dongjay00/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/dongjay00/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/dongjay00/forEachReduce/solve.js b/Challenge/dongjay00/forEachReduce/solve.js deleted file mode 100644 index 9bdb449f..00000000 --- a/Challenge/dongjay00/forEachReduce/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let sum = 0; -inputArray.forEach(res => sum += res); -console.log(sum); diff --git a/Challenge/dongjay00/mapAddPercent/README.md b/Challenge/dongjay00/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/dongjay00/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/dongjay00/mapAddPercent/solve.js b/Challenge/dongjay00/mapAddPercent/solve.js deleted file mode 100644 index 8ddbcd1d..00000000 --- a/Challenge/dongjay00/mapAddPercent/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -const mapArray = inputArray.map(res => res + '%'); -console.log(mapArray); diff --git a/Challenge/dongjay00/mapAppendOrder/README.md b/Challenge/dongjay00/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/dongjay00/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/dongjay00/mapAppendOrder/solve.js b/Challenge/dongjay00/mapAppendOrder/solve.js deleted file mode 100644 index 32ce9bad..00000000 --- a/Challenge/dongjay00/mapAppendOrder/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes -const newArray = inputArray.map((val, idx) => ({ - name: val, - order: idx + 1, -})); - -console.log(newArray); \ No newline at end of file diff --git a/Challenge/dongjay00/recommendAd/README.md b/Challenge/dongjay00/recommendAd/README.md deleted file mode 100644 index 132e8800..00000000 --- a/Challenge/dongjay00/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/dongjay00/recommendAd/solve.js b/Challenge/dongjay00/recommendAd/solve.js deleted file mode 100644 index 6e63d6a0..00000000 --- a/Challenge/dongjay00/recommendAd/solve.js +++ /dev/null @@ -1,27 +0,0 @@ -const userHistory = [ - { date: "2020-11-03", watched: ["KT", "BBQ"] }, - { date: "2020-11-04", watched: ["정관장", "KT", "딱좋은데이"] }, - { date: "2020-11-05", watched: ["그랑사가", "농심"] }, - { date: "2020-11-06", watched: ["BBQ"] }, - { date: "2020-11-07", watched: ["쌍용자동차", "BBQ", "KT"] }, - { date: "2020-11-08", watched: ["켈로그코리아", "빙그레"] }, - { date: "2020-11-09", watched: ["KT", "그랑사가", "빙그레"] }, -]; - -// write your codes -function solution(inputArray) { - for (let i = 0; i < userHistory.length; i++) { - let curr = userHistory[i].watched; - curr.forEach((res) => { - if (inputArray.includes(res)) { - const idx = inputArray.indexOf(res); - if (idx > -1) { - inputArray.splice(idx, 1); - } - } - }); - } - return inputArray; -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/recommendAd/solve.test.js b/Challenge/dongjay00/recommendAd/solve.test.js deleted file mode 100644 index 8a0f6464..00000000 --- a/Challenge/dongjay00/recommendAd/solve.test.js +++ /dev/null @@ -1,23 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - '동원F&B', - '정관장', - 'KT', - 'BBQ', - '그랑사가', - '농심', - '딱좋은데이', - '빙그레', - '쌍용자동차', - '켈로그코리아', - ], - answer: ['동원F&B'], -}; - -describe('recommendAd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/dongjay00/reduceMaxValueNIndex/README.md b/Challenge/dongjay00/reduceMaxValueNIndex/README.md deleted file mode 100644 index 02a22b52..00000000 --- a/Challenge/dongjay00/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/dongjay00/reduceMaxValueNIndex/solve.js b/Challenge/dongjay00/reduceMaxValueNIndex/solve.js deleted file mode 100644 index d058b9fe..00000000 --- a/Challenge/dongjay00/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes -const max = inputArray.reduce((acc, cur, idx) => { - if (acc.maxValue < cur) { - acc.maxValue = cur; - acc.idx = idx; - } - return acc; -}, {maxValue: -9999999, idx: -1}); - -console.log(max); \ No newline at end of file diff --git a/Challenge/dongjay00/reduceNameNickname/README.md b/Challenge/dongjay00/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/dongjay00/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/dongjay00/reduceNameNickname/solve.js b/Challenge/dongjay00/reduceNameNickname/solve.js deleted file mode 100644 index a8d29e23..00000000 --- a/Challenge/dongjay00/reduceNameNickname/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, -]; - -// write your codes -const result = inputArray.reduce((acc, cur) => { - acc[cur.nickname] = cur.name; - return acc; -}, {}); - -console.log(result); \ No newline at end of file diff --git a/Challenge/dongjay00/reduceSum/README.md b/Challenge/dongjay00/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/dongjay00/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/dongjay00/reduceSum/solve.js b/Challenge/dongjay00/reduceSum/solve.js deleted file mode 100644 index 0f1974ee..00000000 --- a/Challenge/dongjay00/reduceSum/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes -const sum = inputArray.reduce((acc, cur) => { - acc += cur; - return acc; -}, 0); - -console.log(sum); - diff --git a/Challenge/dongjay00/sortByPrice/README.md b/Challenge/dongjay00/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/dongjay00/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/dongjay00/sortByPrice/solve.js b/Challenge/dongjay00/sortByPrice/solve.js deleted file mode 100644 index 95aad1ac..00000000 --- a/Challenge/dongjay00/sortByPrice/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -// write your codes -function solution(inputArray) { - inputArray.sort((a, b) => { - return a.price < b.price ? -1 : a.price > b.price ? 1 : 0; - }); - return inputArray; -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/sortByPrice/solve.test.js b/Challenge/dongjay00/sortByPrice/solve.test.js deleted file mode 100644 index 3d6a3431..00000000 --- a/Challenge/dongjay00/sortByPrice/solve.test.js +++ /dev/null @@ -1,34 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, - ], - answer: [ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 }, - ], -}; - -describe('sortByPrice', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/dongjay00/sortByPriceAndQuantity/README.md b/Challenge/dongjay00/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/dongjay00/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/dongjay00/sortByPriceAndQuantity/solve.js b/Challenge/dongjay00/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 996b6f13..00000000 --- a/Challenge/dongjay00/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// write your codes -function solution(inputArray) { - inputArray.sort((a, b) => a.price - b.price || a.quantity - b.quantity); - return inputArray; -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/sortByPriceAndQuantity/solve.test.js b/Challenge/dongjay00/sortByPriceAndQuantity/solve.test.js deleted file mode 100644 index 424f42b7..00000000 --- a/Challenge/dongjay00/sortByPriceAndQuantity/solve.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, - ], - answer: [ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 }, - ], -}; - -describe('sortByPriceAndQuantity', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/dongjay00/spreadOperatorMaxValue/README.md b/Challenge/dongjay00/spreadOperatorMaxValue/README.md deleted file mode 100644 index 164b68a1..00000000 --- a/Challenge/dongjay00/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 diff --git a/Challenge/dongjay00/spreadOperatorMaxValue/solve.js b/Challenge/dongjay00/spreadOperatorMaxValue/solve.js deleted file mode 100644 index e28dceb1..00000000 --- a/Challenge/dongjay00/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - const max = Math.max(...inputArray); - const min = Math.min(...inputArray); - return "max : " + max + ", min : " + min; -} - -exports.solution = solution; diff --git a/Challenge/dongjay00/spreadOperatorMaxValue/solve.test.js b/Challenge/dongjay00/spreadOperatorMaxValue/solve.test.js deleted file mode 100644 index 26f2abf9..00000000 --- a/Challenge/dongjay00/spreadOperatorMaxValue/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - answer: 'max : 10, min : 1', -}; - -describe('spreadOperatorMaxValue', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/dongmin3891/expDivOdd/README.md b/Challenge/dongmin3891/expDivOdd/README.md deleted file mode 100644 index 92d49041..00000000 --- a/Challenge/dongmin3891/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -12 ? diff --git a/Challenge/dongmin3891/expDivOdd/solve.js b/Challenge/dongmin3891/expDivOdd/solve.js deleted file mode 100644 index 84f36dd5..00000000 --- a/Challenge/dongmin3891/expDivOdd/solve.js +++ /dev/null @@ -1,16 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -let result2 = 0; - -const result = inputArray.filter((item) => { - return ((item * item) % 3) % 2 !== 0; -}); -console.log(result); - -for (let i = 0; i < result.length; i++) { - result2 = result2 + result[i]; -} - -console.log(result2); diff --git a/Challenge/dongmin3891/filterAge/README.md b/Challenge/dongmin3891/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/dongmin3891/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/dongmin3891/filterAge/solve.js b/Challenge/dongmin3891/filterAge/solve.js deleted file mode 100644 index 88084600..00000000 --- a/Challenge/dongmin3891/filterAge/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: "영미", - age: 25, - }, - { - name: "일미", - age: 35, - }, - { - name: "이미", - age: 45, - }, - { - name: "삼미", - age: 55, - }, -]; -// write your codes - -const result = inputArray.filter((item) => { - return item.age >= 30 && item.age < 50; -}); - -console.log(result); diff --git a/Challenge/dongmin3891/filterIntersection/README.md b/Challenge/dongmin3891/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/dongmin3891/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/dongmin3891/filterIntersection/solve.js b/Challenge/dongmin3891/filterIntersection/solve.js deleted file mode 100644 index 4e14440e..00000000 --- a/Challenge/dongmin3891/filterIntersection/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -const result = A.filter((item) => { - return B.includes(item); -}); - -console.log(result); diff --git a/Challenge/dongmin3891/filterOdd/README.md b/Challenge/dongmin3891/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/dongmin3891/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/dongmin3891/filterOdd/solve.js b/Challenge/dongmin3891/filterOdd/solve.js deleted file mode 100644 index c045e61e..00000000 --- a/Challenge/dongmin3891/filterOdd/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const result = inputArray.filter((item) => { - return item % 2 !== 0; -}); - -console.log(result); diff --git a/Challenge/dongmin3891/mapAddPercent/README.md b/Challenge/dongmin3891/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/dongmin3891/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/dongmin3891/mapAddPercent/solve.js b/Challenge/dongmin3891/mapAddPercent/solve.js deleted file mode 100644 index fd1f8823..00000000 --- a/Challenge/dongmin3891/mapAddPercent/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.map((item) => item.toString() + "%"); - -console.log(result); diff --git a/Challenge/dongmin3891/mapAppendOrder/README.md b/Challenge/dongmin3891/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/dongmin3891/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/dongmin3891/mapAppendOrder/solve.js b/Challenge/dongmin3891/mapAppendOrder/solve.js deleted file mode 100644 index b56a1465..00000000 --- a/Challenge/dongmin3891/mapAppendOrder/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = ["홍길동", "둘리", "루피"]; - -// write your codes - -let result = inputArray.map((item, index) => { - return { - name: item, - order: index + 1, - }; -}); -console.log(result); diff --git a/Challenge/dongjay00/expDivOdd/README.md b/Challenge/expDivOdd/README.md similarity index 99% rename from Challenge/dongjay00/expDivOdd/README.md rename to Challenge/expDivOdd/README.md index c07ab10b..b3953c3d 100644 --- a/Challenge/dongjay00/expDivOdd/README.md +++ b/Challenge/expDivOdd/README.md @@ -1,3 +1,4 @@ ## 설명 제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. + diff --git a/Challenge/expDivOdd/solve.js b/Challenge/expDivOdd/solve.js new file mode 100644 index 00000000..34695cdb --- /dev/null +++ b/Challenge/expDivOdd/solve.js @@ -0,0 +1,20 @@ +function solution(inputArray) { + // 제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. + let result = []; + + for(let i = 0 ; i < inputArray.length ; i++){ + if(inputArray[i] !== 1){ + if(Math.pow(inputArray[i],2) % 3 === 1){ + result.push(inputArray[i]); + } + + + } +} + const dd= result.reduce((accumulator, currentValue) => accumulator + currentValue); + return dd; + + +} + +exports.solution = solution; diff --git a/Challenge/cellenar26/expDivOdd/solve.test.js b/Challenge/expDivOdd/solve.test.js similarity index 100% rename from Challenge/cellenar26/expDivOdd/solve.test.js rename to Challenge/expDivOdd/solve.test.js diff --git a/Challenge/ghoon99/filterAge/README.md b/Challenge/ghoon99/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/ghoon99/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/ghoon99/filterAge/solve.js b/Challenge/ghoon99/filterAge/solve.js deleted file mode 100644 index 4e700fb9..00000000 --- a/Challenge/ghoon99/filterAge/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] - -// write your codes - -const answer = inputArray.filter( - (element) => 30 <= element.age && element.age < 50 -); -console.log(answer); diff --git a/Challenge/ghoon99/filterOdd/README.md b/Challenge/ghoon99/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/ghoon99/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/ghoon99/filterOdd/solve.js b/Challenge/ghoon99/filterOdd/solve.js deleted file mode 100644 index 5c1c701a..00000000 --- a/Challenge/ghoon99/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const answer = inputArray.filter((element) => element % 2 === 1); -console.log(answer); diff --git a/Challenge/ghoon99/forEachMap/README.md b/Challenge/ghoon99/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/ghoon99/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/ghoon99/forEachMap/solve.js b/Challenge/ghoon99/forEachMap/solve.js deleted file mode 100644 index 0701439c..00000000 --- a/Challenge/ghoon99/forEachMap/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.map((element) => element + "%"); -console.log(answer); diff --git a/Challenge/h-sick/everyArray/README.md b/Challenge/h-sick/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/h-sick/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/h-sick/everyArray/solve.js b/Challenge/h-sick/everyArray/solve.js deleted file mode 100644 index f3f6a0d3..00000000 --- a/Challenge/h-sick/everyArray/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [2, 4, 6, 8, 10]; - -// write your codes - -console.log(inputArray.every((num) => num % 2 === 0)); diff --git a/Challenge/h-sick/expDivOdd/README.md b/Challenge/h-sick/expDivOdd/README.md deleted file mode 100644 index ca68f81d..00000000 --- a/Challenge/h-sick/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -66 diff --git a/Challenge/h-sick/expDivOdd/solve.js b/Challenge/h-sick/expDivOdd/solve.js deleted file mode 100644 index ab70466f..00000000 --- a/Challenge/h-sick/expDivOdd/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -function solution(inputArray) { - let total = 0; - inputArray.forEach((num) => { - let division = (num * num) % 3; - if (division % 2 === 1) total += num * num; - }); - return total; -} -console.log(solution(inputArray)); diff --git a/Challenge/h-sick/figureSkating/README.md b/Challenge/h-sick/figureSkating/README.md deleted file mode 100644 index 88ec86ed..00000000 --- a/Challenge/h-sick/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -- 점수가 가장 높은 사람이 1등이다. -- 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -- 기술점수(TES)는 기본점수 \* 수행점수(GOE)를 합산해 도출한다. -- 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -- 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -- 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 939 } ] diff --git a/Challenge/h-sick/figureSkating/solve.js b/Challenge/h-sick/figureSkating/solve.js deleted file mode 100644 index 32b6aa6b..00000000 --- a/Challenge/h-sick/figureSkating/solve.js +++ /dev/null @@ -1,69 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -]; - -// write your codes - -function solution(input) { - const result = input - .map((player) => { - const goe = player.goe; - const pass = - goe.jump.length >= 3 && goe.spin.length >= 3 && goe.step.length >= 1; - if (pass) { - const jump = goe.jump.sort((a, b) => b - a).slice(0, 3); - const spin = goe.spin.sort((a, b) => b - a).slice(0, 3); - let score = 0; - jump.forEach((point) => (score += point * baseScore.jump)); - spin.forEach((point) => (score += point * baseScore.spin)); - goe.step.forEach((point) => (score += point * baseScore.step)); - score = score + player.pcs - player.penalty; - return { name: player.name, score }; - } - }) - .filter((player) => player); - return result; -} -console.log(solution(inputArray)); diff --git a/Challenge/harrykim14/README.md b/Challenge/harrykim14/README.md deleted file mode 100644 index 89f02ad4..00000000 --- a/Challenge/harrykim14/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# JS-Array-Challenge - -## 자바스크립트 배열을 마스터 해보자! - -Solved 2 problems: expDidOdd, filterAge (5/8)
- -Solved 14 problems: figureSkating, filterOdd, findWord, forEachFilter, forEachFilterIsNaN, forEachMap, forEachReduce, mapAddPercent, mapAppendOrder, reduceMaxValueNIndex, reduceNameNickname, reduceSum, sortByPrice, sortByPriceAndQuantity (5/9)
- -Solved 1 problem: filterIntersection (5/10)
diff --git a/Challenge/harrykim14/expDivOdd/README.md b/Challenge/harrykim14/expDivOdd/README.md deleted file mode 100644 index 6749b510..00000000 --- a/Challenge/harrykim14/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -// 제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -59 diff --git a/Challenge/harrykim14/expDivOdd/solve.js b/Challenge/harrykim14/expDivOdd/solve.js deleted file mode 100644 index 1b3829fc..00000000 --- a/Challenge/harrykim14/expDivOdd/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [ 1, 7, 3, 4, 6 ]; - -// write your codes -// filter를 통해 해당 조건(제곱한 수가 3으로 나눴을 때 나머지가 홀수)을 만족하는 숫자만 추려냄 -// filter로 리턴받은 배열을 reduce를 사용해 제곱한 후 누적 -let answer = inputArray.filter(el => ((el * el) % 3) % 2 === 1 ) - .reduce((acc, cur) => (cur * cur) + acc, 0) - -console.log(answer) // 66 diff --git a/Challenge/harrykim14/figureSkating/README.md b/Challenge/harrykim14/figureSkating/README.md deleted file mode 100644 index bfaa0743..00000000 --- a/Challenge/harrykim14/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -* 점수가 가장 높은 사람이 1등이다. -* 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -* 기술점수(TES)는 기본점수 * 수행점수(GOE)를 합산해 도출한다. -* 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -* 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -* 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 999 } ] diff --git a/Challenge/harrykim14/figureSkating/solve.js b/Challenge/harrykim14/figureSkating/solve.js deleted file mode 100644 index 814c1a08..00000000 --- a/Challenge/harrykim14/figureSkating/solve.js +++ /dev/null @@ -1,86 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -} - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -} - -const inputArray = [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000] - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -] - -// write your codes -// 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -let checkTasks = inputArray.filter( - el => el.goe.jump.length >= baseAssignment.jump - && el.goe.spin.length >= baseAssignment.spin - && el.goe.step.length >= baseAssignment.step - ) -// 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. -let bestPerformance = checkTasks.map(el => { - return { - name: el.name, - goe: { - jump: el.goe.jump.length > 3 - ? el.goe.jump.sort((a,b) => b-a) - .slice(0,3) - .reduce((acc, cur) => acc+cur, 0) - : el.goe.jump.reduce((acc, cur) => acc+cur, 0), - spin: el.goe.spin.length > 3 - ? el.goe.spin.sort((a,b) => b-a) - .slice(0,3) - .reduce((acc, cur) => acc+cur, 0) - : el.goe.spin.reduce((acc, cur) => acc+cur, 0), - step: el.goe.step.reduce((acc, cur) => acc+cur, 0) - }, - pcs: el.pcs, - penalty: el.penalty - } -}) - -// 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -let calculateScore = bestPerformance.map(el => { - return { - name : el.name, - score: (el.goe.jump * baseScore.jump) - + (el.goe.spin * baseScore.spin) - + (el.goe.step * baseScore.step) - + el.pcs - - el.penalty - } -}).sort((a,b) => b.score - a.score) diff --git a/Challenge/harrykim14/filterAge/README.md b/Challenge/harrykim14/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/harrykim14/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/harrykim14/filterAge/solve.js b/Challenge/harrykim14/filterAge/solve.js deleted file mode 100644 index 2de9e54a..00000000 --- a/Challenge/harrykim14/filterAge/solve.js +++ /dev/null @@ -1,23 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes -// age가 30이상 50미만인 사람 -const result = inputArray.filter(el => el.age >= 30 && el.age < 50) - -console.log(result) //[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/harrykim14/filterIntersection/README.md b/Challenge/harrykim14/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/harrykim14/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/harrykim14/filterIntersection/solve.js b/Challenge/harrykim14/filterIntersection/solve.js deleted file mode 100644 index aea1b01e..00000000 --- a/Challenge/harrykim14/filterIntersection/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -// 반대로 적용해도 같은 답을 구할 수 있다 -const intersection = A.filter(el => new Set([...B]).has(el)) - -// 함수화하기 -function getIntersection(A, B) { - return A.filter(el => new Set([...B]).has(el)); -} - diff --git a/Challenge/harrykim14/filterOdd/README.md b/Challenge/harrykim14/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/harrykim14/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/harrykim14/filterOdd/solve.js b/Challenge/harrykim14/filterOdd/solve.js deleted file mode 100644 index 0b5d558f..00000000 --- a/Challenge/harrykim14/filterOdd/solve.js +++ /dev/null @@ -1,4 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes -let oddArray = inputArray.filter(el => el % 2 !== 0) \ No newline at end of file diff --git a/Challenge/harrykim14/findWord/README.md b/Challenge/harrykim14/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/harrykim14/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/harrykim14/findWord/solve.js b/Challenge/harrykim14/findWord/solve.js deleted file mode 100644 index 9ee8e6c7..00000000 --- a/Challenge/harrykim14/findWord/solve.js +++ /dev/null @@ -1,4 +0,0 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; - -// write your codes -let has용가리 = inputArray.includes('용가리') \ No newline at end of file diff --git a/Challenge/harrykim14/forEachFilter/README.md b/Challenge/harrykim14/forEachFilter/README.md deleted file mode 100644 index 0451ae06..00000000 --- a/Challenge/harrykim14/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/harrykim14/forEachFilter/solve.js b/Challenge/harrykim14/forEachFilter/solve.js deleted file mode 100644 index 8be6ec1c..00000000 --- a/Challenge/harrykim14/forEachFilter/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let biggerThan40 = []; -inputArray.forEach(el => { - if(el >= 40) { - biggerThan40.push(el) - } -}) - -// let biggerThan40 = inputArray.filter(el => el >= 40) diff --git a/Challenge/harrykim14/forEachFilterIsNaN/README.md b/Challenge/harrykim14/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/harrykim14/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/harrykim14/forEachFilterIsNaN/solve.js b/Challenge/harrykim14/forEachFilterIsNaN/solve.js deleted file mode 100644 index fb118699..00000000 --- a/Challenge/harrykim14/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes -let filterNumber = []; -inputArray.forEach(el => { - if(!isNaN(el)) { - filterNumber.push(el); - } -}) - -// let filterNumber = inputArray.filter(el => !isNaN(el)) \ No newline at end of file diff --git a/Challenge/harrykim14/forEachMap/README.md b/Challenge/harrykim14/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/harrykim14/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/harrykim14/forEachMap/solve.js b/Challenge/harrykim14/forEachMap/solve.js deleted file mode 100644 index d93fcc4b..00000000 --- a/Challenge/harrykim14/forEachMap/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let percentage = [] -inputArray.forEach(el => percentage.push(el.toString() + "%")) diff --git a/Challenge/harrykim14/forEachReduce/README.md b/Challenge/harrykim14/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/harrykim14/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/harrykim14/forEachReduce/solve.js b/Challenge/harrykim14/forEachReduce/solve.js deleted file mode 100644 index 447d2385..00000000 --- a/Challenge/harrykim14/forEachReduce/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let sum = 0; -inputArray.forEach(el => sum += el); diff --git a/Challenge/harrykim14/mapAddPercent/README.md b/Challenge/harrykim14/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/harrykim14/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/harrykim14/mapAddPercent/solve.js b/Challenge/harrykim14/mapAddPercent/solve.js deleted file mode 100644 index dc4aa105..00000000 --- a/Challenge/harrykim14/mapAddPercent/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let percentage = inputArray.map(el => el.toString() + "%") \ No newline at end of file diff --git a/Challenge/harrykim14/mapAppendOrder/README.md b/Challenge/harrykim14/mapAppendOrder/README.md deleted file mode 100644 index 3a478dc6..00000000 --- a/Challenge/harrykim14/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ -{ name: '홍길동', order: 1 }, -{ name: '둘리', order: 2 }, -{ name: '루피', order: 3 } -] diff --git a/Challenge/harrykim14/mapAppendOrder/solve.js b/Challenge/harrykim14/mapAppendOrder/solve.js deleted file mode 100644 index f521f28a..00000000 --- a/Challenge/harrykim14/mapAppendOrder/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes -let orderedArray = inputArray.map((el, idx) => { - return { - name: el, - order: idx + 1 - } -}) diff --git a/Challenge/harrykim14/recommendAd/README.md b/Challenge/harrykim14/recommendAd/README.md deleted file mode 100644 index 510df285..00000000 --- a/Challenge/harrykim14/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 사용자가 광고를 골고루 시청하길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/harrykim14/recommendAd/solve.js b/Challenge/harrykim14/recommendAd/solve.js deleted file mode 100644 index 2b9aa40b..00000000 --- a/Challenge/harrykim14/recommendAd/solve.js +++ /dev/null @@ -1,16 +0,0 @@ -const userHistory = [ - { date: '2020-11-03', watched: [ 'KT', 'BBQ' ] }, - { date: '2020-11-04', watched: [ '정관장', 'KT', '딱좋은데이' ] }, - { date: '2020-11-05', watched: [ '그랑사가', '농심' ] }, - { date: '2020-11-06', watched: [ 'BBQ' ] }, - { date: '2020-11-07', watched: [ '쌍용자동차', 'BBQ', 'KT' ] }, - { date: '2020-11-08', watched: [ '켈로그코리아', '빙그레' ] }, - { date: '2020-11-09', watched: [ 'KT', '그랑사가', '빙그레' ] }, -]; - -const advList = [ '동원F&B', '정관장', 'KT', 'BBQ', '그랑사가', '농심', '딱좋은데이', '빙그레', '쌍용자동차', '켈로그코리아' ]; - -// write your codes -let allAd = [] -userHistory.forEach(el => allAd.push(...el.watched)); -let notWatched = advList.filter(el => !allAd.includes(el)) \ No newline at end of file diff --git a/Challenge/harrykim14/reduceMaxValueNIndex/README.md b/Challenge/harrykim14/reduceMaxValueNIndex/README.md deleted file mode 100644 index 8f6006b0..00000000 --- a/Challenge/harrykim14/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/harrykim14/reduceMaxValueNIndex/solve.js b/Challenge/harrykim14/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 83410718..00000000 --- a/Challenge/harrykim14/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes -let findMaxValueAndIdx = inputArray.reduce((acc, cur) => { - return { - maxValue : cur > acc.maxValue ? cur : acc.maxValue, - idx : inputArray.indexOf(acc.maxValue) - } -}, { maxValue: 0, idx: 0}) \ No newline at end of file diff --git a/Challenge/harrykim14/reduceNameNickname/README.md b/Challenge/harrykim14/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/harrykim14/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/harrykim14/reduceNameNickname/solve.js b/Challenge/harrykim14/reduceNameNickname/solve.js deleted file mode 100644 index 65d00ee3..00000000 --- a/Challenge/harrykim14/reduceNameNickname/solve.js +++ /dev/null @@ -1,20 +0,0 @@ -const inputArray = [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, -]; - -// write your codes -let extractNameAndNickname = inputArray.reduce((acc, cur) => { - acc[cur.nickname] = cur.name - return acc -}, {}) \ No newline at end of file diff --git a/Challenge/harrykim14/reduceSum/README.md b/Challenge/harrykim14/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/harrykim14/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/harrykim14/reduceSum/solve.js b/Challenge/harrykim14/reduceSum/solve.js deleted file mode 100644 index b0186f1a..00000000 --- a/Challenge/harrykim14/reduceSum/solve.js +++ /dev/null @@ -1,4 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes -let sum = inputArray.reduce((acc, cur) => acc+cur, 0); \ No newline at end of file diff --git a/Challenge/harrykim14/sortByPrice/README.md b/Challenge/harrykim14/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/harrykim14/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/harrykim14/sortByPrice/solve.js b/Challenge/harrykim14/sortByPrice/solve.js deleted file mode 100644 index a7b9ee08..00000000 --- a/Challenge/harrykim14/sortByPrice/solve.js +++ /dev/null @@ -1,21 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - } -]; - -// write your codes -let sortedByPrice = inputArray.sort((a,b) => a.price - b.price); diff --git a/Challenge/harrykim14/sortByPriceAndQuantity/README.md b/Challenge/harrykim14/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/harrykim14/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/harrykim14/sortByPriceAndQuantity/solve.js b/Challenge/harrykim14/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 3987fa82..00000000 --- a/Challenge/harrykim14/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,35 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - } -]; - -// write your codes -let sortedByPriceNQuantity = inputArray.sort((a,b) => { - if (a.price === b.price) return a.quantity - b.quantity - return a.price - b.price -}) - - diff --git a/Challenge/healtheloper/expDivOdd/README.md b/Challenge/healtheloper/expDivOdd/README.md deleted file mode 100644 index 2d5e0676..00000000 --- a/Challenge/healtheloper/expDivOdd/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output diff --git a/Challenge/healtheloper/expDivOdd/solve.js b/Challenge/healtheloper/expDivOdd/solve.js deleted file mode 100644 index 2e18a5c4..00000000 --- a/Challenge/healtheloper/expDivOdd/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -const sum = inputArray - .map((e) => e ** 2) - .filter((e) => e % 3 === 1) - .reduce((acc, el) => acc + el); - -console.log(sum); diff --git a/Challenge/healtheloper/filterAge/README.md b/Challenge/healtheloper/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/healtheloper/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/healtheloper/filterAge/solve.js b/Challenge/healtheloper/filterAge/solve.js deleted file mode 100644 index 2c26e443..00000000 --- a/Challenge/healtheloper/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: "영미", - age: 25, - }, - { - name: "일미", - age: 35, - }, - { - name: "이미", - age: 45, - }, - { - name: "삼미", - age: 55, - }, -]; -// write your codes - -const result = inputArray.filter((obj) => obj.age >= 30 && obj.age < 50); -console.log(result); diff --git a/Challenge/healtheloper/filterIntersection/README.md b/Challenge/healtheloper/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/healtheloper/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/healtheloper/filterIntersection/solve.js b/Challenge/healtheloper/filterIntersection/solve.js deleted file mode 100644 index 752cf9d5..00000000 --- a/Challenge/healtheloper/filterIntersection/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -const result = A.filter((a) => B.includes(a)); -console.log(result); diff --git a/Challenge/hyunwoome/expDivOdd/README.md b/Challenge/hyunwoome/expDivOdd/README.md deleted file mode 100644 index ca68f81d..00000000 --- a/Challenge/hyunwoome/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -66 diff --git a/Challenge/hyunwoome/expDivOdd/solve.js b/Challenge/hyunwoome/expDivOdd/solve.js deleted file mode 100644 index 5439f4ae..00000000 --- a/Challenge/hyunwoome/expDivOdd/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -console.log( - inputArray - .map((el) => el ** 2) - .filter((el) => el % 3 === 1) - .reduce((acc, cur) => { - return acc + cur; - }), -); diff --git a/Challenge/hyunwoome/filterAge/README.md b/Challenge/hyunwoome/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/hyunwoome/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/hyunwoome/filterAge/solve.js b/Challenge/hyunwoome/filterAge/solve.js deleted file mode 100644 index 796ba090..00000000 --- a/Challenge/hyunwoome/filterAge/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -]; -// write your codes - -console.log( - inputArray.filter((el) => { - return el.age >= 30 && el.age < 50; - }), -); diff --git a/Challenge/hyunwoome/filterOdd/README.md b/Challenge/hyunwoome/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/hyunwoome/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/hyunwoome/filterOdd/solve.js b/Challenge/hyunwoome/filterOdd/solve.js deleted file mode 100644 index c32aea26..00000000 --- a/Challenge/hyunwoome/filterOdd/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -console.log( - inputArray.filter((el) => { - return el % 2 === 1; - }), -); diff --git a/Challenge/hyunwoome/forEachFilter/README.md b/Challenge/hyunwoome/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/hyunwoome/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/hyunwoome/forEachFilter/solve.js b/Challenge/hyunwoome/forEachFilter/solve.js deleted file mode 100644 index 8b2a1653..00000000 --- a/Challenge/hyunwoome/forEachFilter/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -console.log( - inputArray.filter((el) => { - return el >= 40; - }), -); - -inputArray.forEach((el) => { - if (el >= 40) return el; -}); diff --git a/Challenge/hyunwoome/forEachFilterIsNaN/README.md b/Challenge/hyunwoome/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/hyunwoome/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/hyunwoome/forEachFilterIsNaN/solve.js b/Challenge/hyunwoome/forEachFilterIsNaN/solve.js deleted file mode 100644 index b354d341..00000000 --- a/Challenge/hyunwoome/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [1, 40, '라매', '개발자', 51.5, 'a', 88]; - -// write your codes - -inputArray.forEach((el) => { - if (!isNaN(el)) console.log(el); -}); diff --git a/Challenge/hyunwoome/forEachMap/README.md b/Challenge/hyunwoome/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/hyunwoome/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/hyunwoome/forEachMap/solve.js b/Challenge/hyunwoome/forEachMap/solve.js deleted file mode 100644 index 16b03b75..00000000 --- a/Challenge/hyunwoome/forEachMap/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let tmp = []; -inputArray.forEach((el) => { - tmp.push(`${el}%`); -}); -console.log(tmp); diff --git a/Challenge/hyunwoome/forEachReduce/README.md b/Challenge/hyunwoome/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/hyunwoome/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/hyunwoome/forEachReduce/solve.js b/Challenge/hyunwoome/forEachReduce/solve.js deleted file mode 100644 index adfb8f14..00000000 --- a/Challenge/hyunwoome/forEachReduce/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let sum = 0; -inputArray.forEach((el) => { - sum += el; -}); -console.log(sum); diff --git a/Challenge/hyunwoome/mapAddPercent/README.md b/Challenge/hyunwoome/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/hyunwoome/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/hyunwoome/mapAddPercent/solve.js b/Challenge/hyunwoome/mapAddPercent/solve.js deleted file mode 100644 index e96f1cbf..00000000 --- a/Challenge/hyunwoome/mapAddPercent/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -console.log(inputArray.map((el) => `${el}%`)); diff --git a/Challenge/hyunwoome/mapAppendOrder/README.md b/Challenge/hyunwoome/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/hyunwoome/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/hyunwoome/mapAppendOrder/solve.js b/Challenge/hyunwoome/mapAppendOrder/solve.js deleted file mode 100644 index aea729dc..00000000 --- a/Challenge/hyunwoome/mapAppendOrder/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes - -console.log( - inputArray.map((el, index) => { - return { name: el, order: index + 1 }; - }), -); diff --git a/Challenge/hyunwoome/reduceSum/README.md b/Challenge/hyunwoome/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/hyunwoome/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/hyunwoome/reduceSum/solve.js b/Challenge/hyunwoome/reduceSum/solve.js deleted file mode 100644 index 712440a6..00000000 --- a/Challenge/hyunwoome/reduceSum/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -console.log( - inputArray.reduce((acc, cur) => { - return acc + cur; - }), -); diff --git a/Challenge/hyunwoome/sortByPrice/README.md b/Challenge/hyunwoome/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/hyunwoome/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/hyunwoome/sortByPrice/solve.js b/Challenge/hyunwoome/sortByPrice/solve.js deleted file mode 100644 index 5b265841..00000000 --- a/Challenge/hyunwoome/sortByPrice/solve.js +++ /dev/null @@ -1,26 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, -]; - -// write your codes - -console.log( - inputArray.sort((a, b) => { - a.price - b.price; - }), -); diff --git a/Challenge/hyunwoome/sortByPriceAndQuantity/README.md b/Challenge/hyunwoome/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/hyunwoome/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/hyunwoome/sortByPriceAndQuantity/solve.js b/Challenge/hyunwoome/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 28b49b71..00000000 --- a/Challenge/hyunwoome/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,35 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, -]; - -// write your codes - -console.log( - inputArray.sort((a, b) => { - return a.price - b.price || a.quantity - b.quantity; - }), -); diff --git a/Challenge/ipadorusa/everyArray/README.md b/Challenge/ipadorusa/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/ipadorusa/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/ipadorusa/everyArray/solve.js b/Challenge/ipadorusa/everyArray/solve.js deleted file mode 100644 index 9fb42568..00000000 --- a/Challenge/ipadorusa/everyArray/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [2, 4, 6, 8, 10]; - -// write your codes -const result = inputArray.every(n => n % 2 === 0); - -console.log(result); diff --git a/Challenge/ipadorusa/expDivOdd/README.md b/Challenge/ipadorusa/expDivOdd/README.md deleted file mode 100644 index 2d5e0676..00000000 --- a/Challenge/ipadorusa/expDivOdd/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output diff --git a/Challenge/ipadorusa/expDivOdd/solve.js b/Challenge/ipadorusa/expDivOdd/solve.js deleted file mode 100644 index 19d12f6f..00000000 --- a/Challenge/ipadorusa/expDivOdd/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -let result = inputArray - .filter(x => { - if (x ** 2 % 3 === 1) return x; - }) - .map(x => x ** 2) - .reduce((acc, cur) => (acc += cur), 0); diff --git a/Challenge/ipadorusa/filterAge/README.md b/Challenge/ipadorusa/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/ipadorusa/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/ipadorusa/filterAge/solve.js b/Challenge/ipadorusa/filterAge/solve.js deleted file mode 100644 index 58d14257..00000000 --- a/Challenge/ipadorusa/filterAge/solve.js +++ /dev/null @@ -1,21 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -]; -// write your codes - -let result = inputArray.filter(x => x.age > 30 && x.age < 50); diff --git a/Challenge/ipadorusa/filterIntersection/README.md b/Challenge/ipadorusa/filterIntersection/README.md deleted file mode 100644 index d7c9ad39..00000000 --- a/Challenge/ipadorusa/filterIntersection/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! diff --git a/Challenge/ipadorusa/filterIntersection/solve.js b/Challenge/ipadorusa/filterIntersection/solve.js deleted file mode 100644 index 44e00e4e..00000000 --- a/Challenge/ipadorusa/filterIntersection/solve.js +++ /dev/null @@ -1,17 +0,0 @@ -function solution(inputArray1, inputArray2) { - let answer = []; - for (let i = 0; i < inputArray1.length; i++) { - for (let j = 0; j < inputArray2.length; j++) { - if (inputArray1[i] === inputArray2[j]) { - answer.push(inputArray1[i]); - } - } - } - return answer; -} -const a = [1, 2, 3, 4, 5]; -const b = [3, 4, 5, 6, 7]; - -solution(a, b); - -exports.solution = solution; diff --git a/Challenge/ipadorusa/filterIntersection/solve.test.js b/Challenge/ipadorusa/filterIntersection/solve.test.js deleted file mode 100644 index 576cbc86..00000000 --- a/Challenge/ipadorusa/filterIntersection/solve.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], - }, - answer: [3, 4, 5], -}; - -describe('filterIntersection', () => { - test('test1', () => { - expect(solution(test1.input.A, test1.input.B)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/filterOdd/README.md b/Challenge/ipadorusa/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/ipadorusa/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/ipadorusa/filterOdd/solve.js b/Challenge/ipadorusa/filterOdd/solve.js deleted file mode 100644 index ad86f3b8..00000000 --- a/Challenge/ipadorusa/filterOdd/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes -let odd = inputArray.filter(val => { - return val % 2 === 1; -}); - -console.log(odd); diff --git a/Challenge/ipadorusa/findWord/README.md b/Challenge/ipadorusa/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/ipadorusa/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/ipadorusa/findWord/solve.js b/Challenge/ipadorusa/findWord/solve.js deleted file mode 100644 index f3652dbd..00000000 --- a/Challenge/ipadorusa/findWord/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -// write your codes - -const inputArray = ['고질라', '용가리 ', '울트라맨']; -function solution(inputArray) { - return inputArray.includes('용가리'); -} - -solution(inputArray); -exports.solution = solution; diff --git a/Challenge/ipadorusa/findWord/solve.test.js b/Challenge/ipadorusa/findWord/solve.test.js deleted file mode 100644 index 804114f6..00000000 --- a/Challenge/ipadorusa/findWord/solve.test.js +++ /dev/null @@ -1,26 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['잠', '자', '고', '싶', '다', '용가리'], - answer: true, -}; -const test2 = { - input: ['맛있는', '용가리치킨'], - answer: false, -}; -const test3 = { - input: ['고질라', '용가리 ', '울트라맨'], - answer: false, -}; - -describe('findWord', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/ipadorusa/forEachFilter/README.md b/Challenge/ipadorusa/forEachFilter/README.md deleted file mode 100644 index 6dcbc7c2..00000000 --- a/Challenge/ipadorusa/forEachFilter/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. diff --git a/Challenge/ipadorusa/forEachFilter/solve.js b/Challenge/ipadorusa/forEachFilter/solve.js deleted file mode 100644 index 2f4b0234..00000000 --- a/Challenge/ipadorusa/forEachFilter/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter(num => num >= 40) -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/forEachFilter/solve.test.js b/Challenge/ipadorusa/forEachFilter/solve.test.js deleted file mode 100644 index 3d73b25c..00000000 --- a/Challenge/ipadorusa/forEachFilter/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: [100, 40], -}; - -describe('forEachFilter', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/forEachFilterIsNaN/README.md b/Challenge/ipadorusa/forEachFilterIsNaN/README.md deleted file mode 100644 index 570c030e..00000000 --- a/Challenge/ipadorusa/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. diff --git a/Challenge/ipadorusa/forEachFilterIsNaN/solve.js b/Challenge/ipadorusa/forEachFilterIsNaN/solve.js deleted file mode 100644 index bf612ef7..00000000 --- a/Challenge/ipadorusa/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter(num => !isNaN(num)) -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/forEachFilterIsNaN/solve.test.js b/Challenge/ipadorusa/forEachFilterIsNaN/solve.test.js deleted file mode 100644 index 360e2de8..00000000 --- a/Challenge/ipadorusa/forEachFilterIsNaN/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 40, '라매', '개발자', 51.5, 'a', 88], - answer: [1, 40, 51.5, 88], -}; - -describe('forEachFilterIsNaN', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/forEachMap/README.md b/Challenge/ipadorusa/forEachMap/README.md deleted file mode 100644 index 1e8e03c8..00000000 --- a/Challenge/ipadorusa/forEachMap/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 diff --git a/Challenge/ipadorusa/forEachMap/solve.js b/Challenge/ipadorusa/forEachMap/solve.js deleted file mode 100644 index fa8380fc..00000000 --- a/Challenge/ipadorusa/forEachMap/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -// write your codes -function solution(inputArray) { - let answer = []; - inputArray.forEach(str => { - answer.push(str + '%'); - }); - return answer; -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/forEachMap/solve.test.js b/Challenge/ipadorusa/forEachMap/solve.test.js deleted file mode 100644 index de4868c6..00000000 --- a/Challenge/ipadorusa/forEachMap/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: ['100%', '10%', '20%', '40%'], -}; - -describe('forEachMap', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/forEachReduce/README.md b/Challenge/ipadorusa/forEachReduce/README.md deleted file mode 100644 index a984df2d..00000000 --- a/Challenge/ipadorusa/forEachReduce/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 diff --git a/Challenge/ipadorusa/forEachReduce/solve.js b/Challenge/ipadorusa/forEachReduce/solve.js deleted file mode 100644 index 216e7990..00000000 --- a/Challenge/ipadorusa/forEachReduce/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc, cur) => { - return (acc += cur); - }, 0); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/forEachReduce/solve.test.js b/Challenge/ipadorusa/forEachReduce/solve.test.js deleted file mode 100644 index 397e4b50..00000000 --- a/Challenge/ipadorusa/forEachReduce/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: 170, -}; - -const test2 = { - input: [120, -20, -30, 0, 15], - answer: 85, -}; - -const test3 = { - input: [-10, -20, -30], - answer: -60, -}; - -describe('forEachReduce', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2: 음수가 포함된 계산', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3: 음수만 존재하는 계산', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/ipadorusa/mapAddPercent/README.md b/Challenge/ipadorusa/mapAddPercent/README.md deleted file mode 100644 index 75e73042..00000000 --- a/Challenge/ipadorusa/mapAddPercent/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 diff --git a/Challenge/ipadorusa/mapAddPercent/solve.js b/Challenge/ipadorusa/mapAddPercent/solve.js deleted file mode 100644 index 75b39afb..00000000 --- a/Challenge/ipadorusa/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map(str => str + '%'); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/mapAddPercent/solve.test.js b/Challenge/ipadorusa/mapAddPercent/solve.test.js deleted file mode 100644 index dac1b3cc..00000000 --- a/Challenge/ipadorusa/mapAddPercent/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: ['100%', '10%', '20%', '40%'], -}; - -describe('mapAddPercent', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/mapAppendOrder/README.md b/Challenge/ipadorusa/mapAppendOrder/README.md deleted file mode 100644 index 1435623a..00000000 --- a/Challenge/ipadorusa/mapAppendOrder/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 diff --git a/Challenge/ipadorusa/mapAppendOrder/solve.js b/Challenge/ipadorusa/mapAppendOrder/solve.js deleted file mode 100644 index 23db789c..00000000 --- a/Challenge/ipadorusa/mapAppendOrder/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map((val, idx) => { - return { - name: val, - order: idx + 1, - }; - }); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/mapAppendOrder/solve.test.js b/Challenge/ipadorusa/mapAppendOrder/solve.test.js deleted file mode 100644 index e08db10c..00000000 --- a/Challenge/ipadorusa/mapAppendOrder/solve.test.js +++ /dev/null @@ -1,16 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['홍길동', '둘리', '루피'], - answer: [ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 }, - ], -}; - -describe('mapAppendOrder', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/recommendAd/README.md b/Challenge/ipadorusa/recommendAd/README.md deleted file mode 100644 index 132e8800..00000000 --- a/Challenge/ipadorusa/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/ipadorusa/recommendAd/solve.js b/Challenge/ipadorusa/recommendAd/solve.js deleted file mode 100644 index 43cf65d5..00000000 --- a/Challenge/ipadorusa/recommendAd/solve.js +++ /dev/null @@ -1,19 +0,0 @@ -const userHistory = [ - { date: '2020-11-03', watched: ['KT', 'BBQ'] }, - { date: '2020-11-04', watched: ['정관장', 'KT', '딱좋은데이'] }, - { date: '2020-11-05', watched: ['그랑사가', '농심'] }, - { date: '2020-11-06', watched: ['BBQ'] }, - { date: '2020-11-07', watched: ['쌍용자동차', 'BBQ', 'KT'] }, - { date: '2020-11-08', watched: ['켈로그코리아', '빙그레'] }, - { date: '2020-11-09', watched: ['KT', '그랑사가', '빙그레'] }, -]; - -// write your codes -function solution(inputArray) { - const setList = new Set(); - userHistory.map(({ watched }) => watched.map(val => setList.add(val))); - const list = Array.from(setList); - return inputArray.filter(val => !list.includes(val)); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/recommendAd/solve.test.js b/Challenge/ipadorusa/recommendAd/solve.test.js deleted file mode 100644 index 8a0f6464..00000000 --- a/Challenge/ipadorusa/recommendAd/solve.test.js +++ /dev/null @@ -1,23 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - '동원F&B', - '정관장', - 'KT', - 'BBQ', - '그랑사가', - '농심', - '딱좋은데이', - '빙그레', - '쌍용자동차', - '켈로그코리아', - ], - answer: ['동원F&B'], -}; - -describe('recommendAd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/reduceMaxValueNIndex/README.md b/Challenge/ipadorusa/reduceMaxValueNIndex/README.md deleted file mode 100644 index 965bdec6..00000000 --- a/Challenge/ipadorusa/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 diff --git a/Challenge/ipadorusa/reduceMaxValueNIndex/solve.js b/Challenge/ipadorusa/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 1a888ba6..00000000 --- a/Challenge/ipadorusa/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,18 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce( - (acc, cur, index) => { - if (acc.maxValue < cur) { - acc.maxValue = cur; - acc.idx = index; - } - return acc; - }, - { - maxValue: Number.MIN_SAFE_INTEGER, - idx: 0, - } - ); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/reduceMaxValueNIndex/solve.test.js b/Challenge/ipadorusa/reduceMaxValueNIndex/solve.test.js deleted file mode 100644 index bbe07133..00000000 --- a/Challenge/ipadorusa/reduceMaxValueNIndex/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [3, 29, 38, 12, 57, 74, 40, 85, 61], - answer: { maxValue: 85, idx: 7 }, -}; - -describe('reduceMaxValueNIndex', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/reduceNameNickname/README.md b/Challenge/ipadorusa/reduceNameNickname/README.md deleted file mode 100644 index b6920e05..00000000 --- a/Challenge/ipadorusa/reduceNameNickname/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 diff --git a/Challenge/ipadorusa/reduceNameNickname/solve.js b/Challenge/ipadorusa/reduceNameNickname/solve.js deleted file mode 100644 index 8fe44d1a..00000000 --- a/Challenge/ipadorusa/reduceNameNickname/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc, cur) => { - return { ...acc, [cur.nickname]: cur.name }; - }, {}); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/reduceNameNickname/solve.test.js b/Challenge/ipadorusa/reduceNameNickname/solve.test.js deleted file mode 100644 index 67b74529..00000000 --- a/Challenge/ipadorusa/reduceNameNickname/solve.test.js +++ /dev/null @@ -1,25 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, - ], - answer: { hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' }, -}; - -describe('reduceNameNickname', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/reduceSum/README.md b/Challenge/ipadorusa/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/ipadorusa/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/ipadorusa/reduceSum/solve.js b/Challenge/ipadorusa/reduceSum/solve.js deleted file mode 100644 index 4a734723..00000000 --- a/Challenge/ipadorusa/reduceSum/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -let sum = inputArray.reduce((acc, cur) => (acc += cur), 0); -console.log(sum); diff --git a/Challenge/ipadorusa/sortByPrice/README.md b/Challenge/ipadorusa/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/ipadorusa/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/ipadorusa/sortByPrice/solve.js b/Challenge/ipadorusa/sortByPrice/solve.js deleted file mode 100644 index b6b41b28..00000000 --- a/Challenge/ipadorusa/sortByPrice/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort((a, b) => a.price - b.price); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/sortByPrice/solve.test.js b/Challenge/ipadorusa/sortByPrice/solve.test.js deleted file mode 100644 index 3d6a3431..00000000 --- a/Challenge/ipadorusa/sortByPrice/solve.test.js +++ /dev/null @@ -1,34 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, - ], - answer: [ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 }, - ], -}; - -describe('sortByPrice', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/sortByPriceAndQuantity/README.md b/Challenge/ipadorusa/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/ipadorusa/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/ipadorusa/sortByPriceAndQuantity/solve.js b/Challenge/ipadorusa/sortByPriceAndQuantity/solve.js deleted file mode 100644 index f987b807..00000000 --- a/Challenge/ipadorusa/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort( - (a, b) => a.price - b.price || a.quantity - b.quantity, - ); -} - -exports.solution = solution; diff --git a/Challenge/ipadorusa/sortByPriceAndQuantity/solve.test.js b/Challenge/ipadorusa/sortByPriceAndQuantity/solve.test.js deleted file mode 100644 index 424f42b7..00000000 --- a/Challenge/ipadorusa/sortByPriceAndQuantity/solve.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, - ], - answer: [ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 }, - ], -}; - -describe('sortByPriceAndQuantity', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/ipadorusa/spreadOperatorMaxValue/README.md b/Challenge/ipadorusa/spreadOperatorMaxValue/README.md deleted file mode 100644 index 164b68a1..00000000 --- a/Challenge/ipadorusa/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 diff --git a/Challenge/ipadorusa/spreadOperatorMaxValue/solve.js b/Challenge/ipadorusa/spreadOperatorMaxValue/solve.js deleted file mode 100644 index 7d4078a3..00000000 --- a/Challenge/ipadorusa/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return `max : ${Math.max(...inputArray)}, min : ${Math.min(...inputArray)}`; -} - -exports.solution = solution; - -// 'max : 10, min : 1' diff --git a/Challenge/ipadorusa/spreadOperatorMaxValue/solve.test.js b/Challenge/ipadorusa/spreadOperatorMaxValue/solve.test.js deleted file mode 100644 index 26f2abf9..00000000 --- a/Challenge/ipadorusa/spreadOperatorMaxValue/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - answer: 'max : 10, min : 1', -}; - -describe('spreadOperatorMaxValue', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/irisdew/everyArray/README.md b/Challenge/irisdew/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/irisdew/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/irisdew/everyArray/solve.js b/Challenge/irisdew/everyArray/solve.js deleted file mode 100644 index 0584f326..00000000 --- a/Challenge/irisdew/everyArray/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -function solution(inputArray) { - return inputArray.every((num) => num % 2 == 0); -} - -exports.solution = solution; diff --git a/Challenge/irisdew/everyArray/solve.test.js b/Challenge/irisdew/everyArray/solve.test.js deleted file mode 100644 index b03e4791..00000000 --- a/Challenge/irisdew/everyArray/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [2, 4, 6, 8, 10], - answer: true, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: false, -}; - -describe('everyArray', () => { - test('모두 짝수면 true여야 한다.', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('홀수가 있으면 false여야 한다.', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/irisdew/expDivOdd/README.md b/Challenge/irisdew/expDivOdd/README.md deleted file mode 100644 index 729789f6..00000000 --- a/Challenge/irisdew/expDivOdd/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - ---> 제곱한 후 3으로 나눈 나머지가 홀수인 것을 제곱한 것의 총 합을 구하세요. - -## Expected Output - -66 diff --git a/Challenge/irisdew/expDivOdd/solve.js b/Challenge/irisdew/expDivOdd/solve.js deleted file mode 100644 index 3e3c576b..00000000 --- a/Challenge/irisdew/expDivOdd/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes -let answer = 0; -inputArray.forEach((x) => { - if (x ** 2 % 3 === 1) { - answer += x; - console.log(x); - } -}); -console.log(answer); diff --git a/Challenge/irisdew/figureSkating/README.md b/Challenge/irisdew/figureSkating/README.md deleted file mode 100644 index 88ec86ed..00000000 --- a/Challenge/irisdew/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -- 점수가 가장 높은 사람이 1등이다. -- 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -- 기술점수(TES)는 기본점수 \* 수행점수(GOE)를 합산해 도출한다. -- 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -- 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -- 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 939 } ] diff --git a/Challenge/irisdew/figureSkating/solve.js b/Challenge/irisdew/figureSkating/solve.js deleted file mode 100644 index 13f47344..00000000 --- a/Challenge/irisdew/figureSkating/solve.js +++ /dev/null @@ -1,88 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: "김연아", - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: "피겨의 신", - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: "아사다 마오", - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -]; - -// write your codes - -function Assignment(player, baseAssignment) { - if (player.jump.length >= baseAssignment.jump && player.spin.length >= baseAssignment.spin && player.step.length >= baseAssignment.step) { - return true; - } else { - return false; - } -} - -function Sum(arr) { - return arr.reduce((acc, el) => { - return acc + el; - }, 0); -} - -function Sort(arr, n) { - if (arr.length >= n) { - return arr.sort((a, b) => b - a).slice(0, n); - } - return arr.sort((a, b) => b - a); -} - -function Score(player) { - const jumpTES = baseScore.jump * Sum(Sort(player.goe.jump, baseAssignment.jump)); - const spinTES = baseScore.spin * Sum(Sort(player.goe.spin, baseAssignment.spin)); - const stepTES = baseScore.step * Sum(Sort(player.goe.step, baseAssignment.step)); - return jumpTES + spinTES + stepTES + player.pcs - player.penalty; -} - -const answer = inputArray - .filter((player) => Assignment(player.goe, baseAssignment)) - .map((player) => { - const rObj = {}; - rObj["name"] = player.name; - rObj["score"] = Score(player); - return rObj; - }); - -console.log(answer); - -console.log(Sort([9, 6, 8, 9], 3)); diff --git a/Challenge/irisdew/filterAge/README.md b/Challenge/irisdew/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/irisdew/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/irisdew/filterAge/solve.js b/Challenge/irisdew/filterAge/solve.js deleted file mode 100644 index c2685370..00000000 --- a/Challenge/irisdew/filterAge/solve.js +++ /dev/null @@ -1,21 +0,0 @@ -const inputArray = [ - { - name: "영미", - age: 25, - }, - { - name: "일미", - age: 35, - }, - { - name: "이미", - age: 45, - }, - { - name: "삼미", - age: 55, - }, -]; -// write your codes -const answer = inputArray.filter((person) => person.age >= 30 && person.age < 50); -console.log(answer); diff --git a/Challenge/irisdew/filterIntersection/README.md b/Challenge/irisdew/filterIntersection/README.md deleted file mode 100644 index d7c9ad39..00000000 --- a/Challenge/irisdew/filterIntersection/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! diff --git a/Challenge/irisdew/filterIntersection/solve.js b/Challenge/irisdew/filterIntersection/solve.js deleted file mode 100644 index bc4b6641..00000000 --- a/Challenge/irisdew/filterIntersection/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -function solution(inputArray1, inputArray2) { - return inputArray1.filter((el) => inputArray2.includes(el)); -} - -exports.solution = solution; diff --git a/Challenge/irisdew/filterIntersection/solve.test.js b/Challenge/irisdew/filterIntersection/solve.test.js deleted file mode 100644 index 576cbc86..00000000 --- a/Challenge/irisdew/filterIntersection/solve.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], - }, - answer: [3, 4, 5], -}; - -describe('filterIntersection', () => { - test('test1', () => { - expect(solution(test1.input.A, test1.input.B)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/irisdew/filterOdd/README.md b/Challenge/irisdew/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/irisdew/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/irisdew/filterOdd/solve.js b/Challenge/irisdew/filterOdd/solve.js deleted file mode 100644 index 9f8b3dc2..00000000 --- a/Challenge/irisdew/filterOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const answer = inputArray.filter((num) => num % 2 === 1); - -console.log(answer); diff --git a/Challenge/irisdew/forEachFilter/README.md b/Challenge/irisdew/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/irisdew/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/irisdew/forEachFilter/solve.js b/Challenge/irisdew/forEachFilter/solve.js deleted file mode 100644 index 9e78decd..00000000 --- a/Challenge/irisdew/forEachFilter/solve.js +++ /dev/null @@ -1,18 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -// filter -const a = inputArray.filter((num) => num >= 40); - -console.log(a); - -// forEach -const b = []; -inputArray.forEach((num) => { - if (num >= 40) { - b.push(num); - } -}); - -console.log(b); diff --git a/Challenge/irisdew/forEachFilterIsNaN/README.md b/Challenge/irisdew/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/irisdew/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/irisdew/forEachFilterIsNaN/solve.js b/Challenge/irisdew/forEachFilterIsNaN/solve.js deleted file mode 100644 index f0233928..00000000 --- a/Challenge/irisdew/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,28 +0,0 @@ -const inputArray = [1, 40, "라매", "개발자", 51.5, "a", 88]; - -// write your codes - -// first solve -const answer = []; -inputArray.forEach((el) => { - if (typeof el === "number") { - answer.push(el); - } -}); -console.log(answer); - -// second solve -console.log(isNaN(null)); // NaN (Not-A-Number) 숫자가 아님 -console.log(NaN === NaN); // NaN은 다른 NaN과도 같지 않음 - -const b = []; -inputArray.forEach((el) => { - if (isNaN(el) === false) { - b.push(el); - } -}); -console.log(b); - -// filter -const c = inputArray.filter((el) => !isNaN(el)); -console.log(c); diff --git a/Challenge/irisdew/forEachMap/README.md b/Challenge/irisdew/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/irisdew/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/irisdew/forEachMap/solve.js b/Challenge/irisdew/forEachMap/solve.js deleted file mode 100644 index cf81d9c9..00000000 --- a/Challenge/irisdew/forEachMap/solve.js +++ /dev/null @@ -1,17 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -// forEach -const a = []; - -inputArray.forEach((num) => { - a.push(`${num}%`); -}); - -console.log(a); - -// map -const b = inputArray.map((num) => `${num}%`); - -console.log(b); diff --git a/Challenge/irisdew/forEachReduce/README.md b/Challenge/irisdew/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/irisdew/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/irisdew/forEachReduce/solve.js b/Challenge/irisdew/forEachReduce/solve.js deleted file mode 100644 index f4c874ed..00000000 --- a/Challenge/irisdew/forEachReduce/solve.js +++ /dev/null @@ -1,14 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -// forEach -let a = 0; -inputArray.forEach((num) => (a = a + num)); -console.log(a); - -// reduce -const b = inputArray.reduce((sum, num) => { - return sum + num; -}, 0); -console.log(b); diff --git a/Challenge/irisdew/mapAddPercent/README.md b/Challenge/irisdew/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/irisdew/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/irisdew/mapAddPercent/solve.js b/Challenge/irisdew/mapAddPercent/solve.js deleted file mode 100644 index aaf98511..00000000 --- a/Challenge/irisdew/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.map((el) => el + "%"); -console.log(answer); diff --git a/Challenge/irisdew/mapAppendOrder/README.md b/Challenge/irisdew/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/irisdew/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/irisdew/mapAppendOrder/solve.js b/Challenge/irisdew/mapAppendOrder/solve.js deleted file mode 100644 index d1001f1a..00000000 --- a/Challenge/irisdew/mapAppendOrder/solve.js +++ /dev/null @@ -1,14 +0,0 @@ -const inputArray = []; - -// write your codes - -const names = ["홍길동", "둘리", "루피"]; - -let count = 1; -const answer = names.map((name, index) => { - return { name, order: index + 1 }; -}); -console.log(answer); - -// arr.map(callback(currentValue[, index[, array]])[, thisArg]) -// map의 callback함수가 세가지 인자를 가진다는 것을 알게되었다! currentValue(처리할 현재 요소), index, array(배열 전체) diff --git a/Challenge/irisdew/reduceNameNickname/README.md b/Challenge/irisdew/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/irisdew/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/irisdew/reduceNameNickname/solve.js b/Challenge/irisdew/reduceNameNickname/solve.js deleted file mode 100644 index 0874c54c..00000000 --- a/Challenge/irisdew/reduceNameNickname/solve.js +++ /dev/null @@ -1,20 +0,0 @@ -const inputArray = [ - { - name: "홍길동", - nickname: "hong", - }, - { - name: "둘리", - nickname: "2li", - }, - { - name: "오스트랄로피테쿠스", - nickname: "1Cin", - }, -]; - -// write your codes -const answer = inputArray.reduce((accumulator, currentValue) => { - return { ...accumulator, [currentValue.nickname]: currentValue.name }; -}, {}); -console.log(answer); diff --git a/Challenge/irisdew/reduceSum/README.md b/Challenge/irisdew/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/irisdew/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/irisdew/reduceSum/solve.js b/Challenge/irisdew/reduceSum/solve.js deleted file mode 100644 index 73f8b1f8..00000000 --- a/Challenge/irisdew/reduceSum/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes -const answer = inputArray.reduce((sum, num) => { - return sum + num; -}, 0); -console.log(answer); -// 초기값이 없을 때 빈배열일 경우 TypeError 발생 -// 초기값을 설정해야 배열의 모든 항목이 리듀서를 거친다 diff --git a/Challenge/irisdew/sortByPrice/README.md b/Challenge/irisdew/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/irisdew/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/irisdew/sortByPrice/solve.js b/Challenge/irisdew/sortByPrice/solve.js deleted file mode 100644 index d45efac0..00000000 --- a/Challenge/irisdew/sortByPrice/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: "사과", - price: 1000, - }, - { - name: "수박", - price: 5000, - }, - { - name: "당근", - price: 2000, - }, - { - name: "참외", - price: 10000, - }, -]; - -// write your codes -const answer = inputArray.sort((a, b) => a.price - b.price); -console.log(answer); diff --git a/Challenge/irisdew/sortByPriceAndQuantity/README.md b/Challenge/irisdew/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/irisdew/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/irisdew/sortByPriceAndQuantity/solve.js b/Challenge/irisdew/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 5a4cc121..00000000 --- a/Challenge/irisdew/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,46 +0,0 @@ -const inputArray = [ - { - name: "사과", - price: 1000, - quantity: 2, - }, - { - name: "수박", - price: 5000, - quantity: 20, - }, - { - name: "당근", - price: 2000, - quantity: 50, - }, - { - name: "참외", - price: 5000, - quantity: 10, - }, - { - name: "오이", - price: 2000, - quantity: 49, - }, -]; - -// write your codes - -// my answer -const answer = inputArray.sort((a, b) => { - if (a.price === b.price) { - return a.quantity - b.quantity; - } - return a.price - b.price; -}); - -console.log(answer); - -// answer -const result = inputArray.sort((a, b) => { - return a.price - b.price || a.quantity - b.quantity; -}); - -console.log(result); diff --git a/Challenge/jackma914/expDivOdd/README.md b/Challenge/jackma914/expDivOdd/README.md deleted file mode 100644 index 2d5e0676..00000000 --- a/Challenge/jackma914/expDivOdd/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output diff --git a/Challenge/jackma914/expDivOdd/solve.js b/Challenge/jackma914/expDivOdd/solve.js deleted file mode 100644 index 752894df..00000000 --- a/Challenge/jackma914/expDivOdd/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes -// 제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -const result = inputArray - .map((el) => el * el) - .filter((el) => el % 3 === 1) - .reduce((acc, el) => acc + el, 0); -console.log(result); diff --git a/Challenge/jackma914/filterAge/README.md b/Challenge/jackma914/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/jackma914/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/jackma914/filterAge/solve.js b/Challenge/jackma914/filterAge/solve.js deleted file mode 100644 index cef311ed..00000000 --- a/Challenge/jackma914/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: "영미", - age: 25, - }, - { - name: "일미", - age: 35, - }, - { - name: "이미", - age: 45, - }, - { - name: "삼미", - age: 55, - }, -]; -// write your codes - -const result = inputArray.filter((el) => el.age >= 30 && el.age < 50); -console.log(result); diff --git a/Challenge/jackma914/filterOdd/README.md b/Challenge/jackma914/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/jackma914/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/jackma914/filterOdd/solve.js b/Challenge/jackma914/filterOdd/solve.js deleted file mode 100644 index 73d3a94f..00000000 --- a/Challenge/jackma914/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const result = inputArray.filter((el) => el % 2 === 1); -console.log(result); diff --git a/Challenge/jackma914/findWord/README.md b/Challenge/jackma914/findWord/README.md deleted file mode 100644 index 2ab8fcb2..00000000 --- a/Challenge/jackma914/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/jackma914/findWord/solve.js b/Challenge/jackma914/findWord/solve.js deleted file mode 100644 index 8b6dc076..00000000 --- a/Challenge/jackma914/findWord/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = ["잠", "자", "고", "싶", "다", "용가리"]; - -// write your codes - -const result = inputArray.includes("용가리"); -console.log(result); diff --git a/Challenge/jackma914/forEachFilter/README.md b/Challenge/jackma914/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/jackma914/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/jackma914/forEachFilter/solve.js b/Challenge/jackma914/forEachFilter/solve.js deleted file mode 100644 index 1f568488..00000000 --- a/Challenge/jackma914/forEachFilter/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.filter((el) => el >= 40); -console.log(result); diff --git a/Challenge/jackma914/forEachFilterIsNaN/README.md b/Challenge/jackma914/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/jackma914/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/jackma914/forEachFilterIsNaN/solve.js b/Challenge/jackma914/forEachFilterIsNaN/solve.js deleted file mode 100644 index 9d6e0499..00000000 --- a/Challenge/jackma914/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [1, 40, "라매", "개발자", 51.5, "a", 88]; - -// write your codes - -const result = inputArray.filter((el) => isNaN(el) == false); -console.log(result); diff --git a/Challenge/jackma914/forEachMap/README.md b/Challenge/jackma914/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/jackma914/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/jackma914/forEachMap/solve.js b/Challenge/jackma914/forEachMap/solve.js deleted file mode 100644 index f15fffbc..00000000 --- a/Challenge/jackma914/forEachMap/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let answer = []; -let result = inputArray.forEach((el) => { - answer.push(el + "%"); -}); -console.log(answer); diff --git a/Challenge/jackma914/forEachReduce/README.md b/Challenge/jackma914/forEachReduce/README.md deleted file mode 100644 index 076ee1b6..00000000 --- a/Challenge/jackma914/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/jackma914/forEachReduce/solve.js b/Challenge/jackma914/forEachReduce/solve.js deleted file mode 100644 index e0ede80e..00000000 --- a/Challenge/jackma914/forEachReduce/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -// const result = inputArray.reduce((acc, value) => acc + value, 0); -// console.log(result); - -let sum = 0; -inputArray.forEach((el) => { - sum = sum + el; -}); - -console.log(sum); diff --git a/Challenge/jackma914/mapAddPercent/README.md b/Challenge/jackma914/mapAddPercent/README.md deleted file mode 100644 index 692cc20b..00000000 --- a/Challenge/jackma914/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/jackma914/mapAddPercent/solve.js b/Challenge/jackma914/mapAddPercent/solve.js deleted file mode 100644 index 08c82add..00000000 --- a/Challenge/jackma914/mapAddPercent/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -// map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 -const result = inputArray.map((el) => el + "%"); -console.log(result); diff --git a/Challenge/jackma914/mapAppendOrder/README.md b/Challenge/jackma914/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/jackma914/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/jackma914/mapAppendOrder/solve.js b/Challenge/jackma914/mapAppendOrder/solve.js deleted file mode 100644 index 0a7eafb5..00000000 --- a/Challenge/jackma914/mapAppendOrder/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = ["홍길동", "둘리", "루피"]; - -// write your codes - -const answer = inputArray.map((el, idx, str) => { - return { - name: el, - order: idx + 1, - }; -}); - -console.log(answer); diff --git a/Challenge/jaharim/everyArray/README.md b/Challenge/jaharim/everyArray/README.md deleted file mode 100644 index e69de29b..00000000 diff --git a/Challenge/jaharim/everyArray/solve.js b/Challenge/jaharim/everyArray/solve.js deleted file mode 100644 index a648e2e5..00000000 --- a/Challenge/jaharim/everyArray/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [2, 4, 6, 8, 10]; - -// write your codes - -const result = inputArray.every((el) => el % 2 == 0); - -console.log(result); diff --git a/Challenge/jaharim/expDivOdd/README.md b/Challenge/jaharim/expDivOdd/README.md deleted file mode 100644 index 0eb76aea..00000000 --- a/Challenge/jaharim/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -12 diff --git a/Challenge/jaharim/expDivOdd/solve.js b/Challenge/jaharim/expDivOdd/solve.js deleted file mode 100644 index 31a76646..00000000 --- a/Challenge/jaharim/expDivOdd/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -'use strict' - -const inputArray = [ 1, 7, 3, 4, 6 ]; - -// write your codes - -// 제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -const result = inputArray -.filter((inputElement)=>(((inputElement**2)%3%2) === 1)) -.reduce((prev,curr)=>prev + curr,0); - -console.log(result); diff --git a/Challenge/jaharim/figureSkating/README.md b/Challenge/jaharim/figureSkating/README.md deleted file mode 100644 index 648eeaa4..00000000 --- a/Challenge/jaharim/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -* 점수가 가장 높은 사람이 1등이다. -* 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -* 기술점수(TES)는 기본점수 * 수행점수(GOE)를 합산해 도출한다. -* 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -* 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -* 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 939 } ] diff --git a/Challenge/jaharim/figureSkating/solve.js b/Challenge/jaharim/figureSkating/solve.js deleted file mode 100644 index ee6a5b7a..00000000 --- a/Challenge/jaharim/figureSkating/solve.js +++ /dev/null @@ -1,69 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -} - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -} - -const inputArray = [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000] - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -] - -// write your codes -let arr=[]; - -const filterFailer = inputArray.filter((player) => player.goe.jump.length >= 3 && player.goe.spin.length >= 3 && player.goe.step.length >= 1); - -filterFailer.forEach((el)=> { - el.goe.jump.sort((a,b)=>b-a).splice(baseAssignment.jump); - el.goe.spin.sort((a,b)=>b-a).splice(baseAssignment.spin); - } -); - -arr = filterFailer.map((curr) => { - return { - [`name`] : curr.name, - [`score`] : (curr.goe.jump.reduce((prev2,curr2) => prev2+curr2,0) * baseScore.jump) + - (curr.goe.spin.reduce((prev3,curr3) => prev3+curr3,0) * baseScore.spin) + - (curr.goe.step[0] * baseScore.step) + - curr.pcs - curr.penalty, - } - } -); - -console.log(arr); diff --git a/Challenge/jaharim/filterAge/README.md b/Challenge/jaharim/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/jaharim/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/jaharim/filterAge/solve.js b/Challenge/jaharim/filterAge/solve.js deleted file mode 100644 index 651b7d1a..00000000 --- a/Challenge/jaharim/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] - -// write your codes -const result = inputArray.filter((inputElement)=> inputElement.age >= 30 && inputElement.age < 50); -console.log(result); diff --git a/Challenge/jaharim/filterIntersection/README.md b/Challenge/jaharim/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/jaharim/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/jaharim/filterIntersection/solve.js b/Challenge/jaharim/filterIntersection/solve.js deleted file mode 100644 index b26a3259..00000000 --- a/Challenge/jaharim/filterIntersection/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -const result = A.filter((arrayElement) => (B.indexOf(arrayElement) !== -1)); -console.log(result); \ No newline at end of file diff --git a/Challenge/jaharim/filterOdd/README.md b/Challenge/jaharim/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/jaharim/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/jaharim/filterOdd/solve.js b/Challenge/jaharim/filterOdd/solve.js deleted file mode 100644 index 0a618ac8..00000000 --- a/Challenge/jaharim/filterOdd/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -'use strict' - -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const result = inputArray.filter((InputElement)=> InputElement % 2 === 1); -console.log(result); diff --git a/Challenge/jaharim/findWord/README.md b/Challenge/jaharim/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/jaharim/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/jaharim/findWord/solve.js b/Challenge/jaharim/findWord/solve.js deleted file mode 100644 index be309caa..00000000 --- a/Challenge/jaharim/findWord/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; - -// write your codes - -const result = inputArray.some((inputElement) => inputElement === "용가리"); -console.log(result); \ No newline at end of file diff --git a/Challenge/jaharim/forEachFilter/README.md b/Challenge/jaharim/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/jaharim/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/jaharim/forEachFilter/solve.js b/Challenge/jaharim/forEachFilter/solve.js deleted file mode 100644 index 8292afd6..00000000 --- a/Challenge/jaharim/forEachFilter/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.filter((inputElement) => inputElement >= 40 ); -console.log(result); diff --git a/Challenge/jaharim/forEachFilterIsNaN/README.md b/Challenge/jaharim/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/jaharim/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/jaharim/forEachFilterIsNaN/solve.js b/Challenge/jaharim/forEachFilterIsNaN/solve.js deleted file mode 100644 index 22fccfc4..00000000 --- a/Challenge/jaharim/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes - -const result = inputArray.filter((remainElement) => remainElement / 1); -console.log(result); diff --git a/Challenge/jaharim/forEachMap/README.md b/Challenge/jaharim/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/jaharim/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/jaharim/forEachMap/solve.js b/Challenge/jaharim/forEachMap/solve.js deleted file mode 100644 index 99335732..00000000 --- a/Challenge/jaharim/forEachMap/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -// In case of using 'map' method -//const result = inputArray.map((inputElement) => `${inputElement}%`); - -let newArray = []; -const result = inputArray.forEach((inputElement)=> -newArray.push(`${inputElement}%`) -); -console.log(newArray); diff --git a/Challenge/jaharim/forEachReduce/README.md b/Challenge/jaharim/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/jaharim/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/jaharim/forEachReduce/solve.js b/Challenge/jaharim/forEachReduce/solve.js deleted file mode 100644 index 12d18c4d..00000000 --- a/Challenge/jaharim/forEachReduce/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let acc = 0; -const result = inputArray.forEach((inputElement) => acc += inputElement ); -console.log(acc); diff --git a/Challenge/jaharim/mapAddPercent/README.md b/Challenge/jaharim/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/jaharim/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/jaharim/mapAddPercent/solve.js b/Challenge/jaharim/mapAddPercent/solve.js deleted file mode 100644 index 7990f34f..00000000 --- a/Challenge/jaharim/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.map((inputElement) => `${inputElement}%`); -console.log(result); diff --git a/Challenge/jaharim/mapAppendOrder/README.md b/Challenge/jaharim/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/jaharim/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/jaharim/mapAppendOrder/solve.js b/Challenge/jaharim/mapAppendOrder/solve.js deleted file mode 100644 index 2b4db462..00000000 --- a/Challenge/jaharim/mapAppendOrder/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes - -let arr = []; -const result = inputArray -.map((inputElement) => arr.push( - { name : inputElement, - order : inputArray.indexOf(inputElement)+1 - }) -); -console.log(arr); diff --git a/Challenge/jaharim/recommendAd/README.md b/Challenge/jaharim/recommendAd/README.md deleted file mode 100644 index 132e8800..00000000 --- a/Challenge/jaharim/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/jaharim/recommendAd/solve.js b/Challenge/jaharim/recommendAd/solve.js deleted file mode 100644 index da3eefd8..00000000 --- a/Challenge/jaharim/recommendAd/solve.js +++ /dev/null @@ -1,33 +0,0 @@ -'use strict' - -const userHistory = [ - { date: '2020-11-03', watched: [ 'KT', 'BBQ' ] }, - { date: '2020-11-04', watched: [ '정관장', 'KT', '딱좋은데이' ] }, - { date: '2020-11-05', watched: [ '그랑사가', '농심' ] }, - { date: '2020-11-06', watched: [ 'BBQ' ] }, - { date: '2020-11-07', watched: [ '쌍용자동차', 'BBQ', 'KT' ] }, - { date: '2020-11-08', watched: [ '켈로그코리아', '빙그레' ] }, - { date: '2020-11-09', watched: [ 'KT', '그랑사가', '빙그레' ] }, -]; - -const advList = [ '동원F&B', '정관장', 'KT', 'BBQ', '그랑사가', '농심', '딱좋은데이', '빙그레', '쌍용자동차', '켈로그코리아' ]; - -// write your codes -const indexOfadvList = [0,1,2,3,4,5,6,7,8,9]; -const indexOfuserHistory = [0,1,2,3,4,5,6]; - -const watched_adv_Array = []; -const ArrayFromSet = []; - -const gatherWA = indexOfuserHistory.map((el)=> watched_adv_Array.concat(userHistory[el].watched)).join(",").split(","); -// userHistory의 watched_adv 한 배열에 모으기 - -const deleteOverlap = new Set(gatherWA); -for( let i of deleteOverlap){ - ArrayFromSet.push(i); -} // 모인 watched_adv를 Set을 이용해 중복값 없애고 ArrayFromSet에 push 해주기 - -const result = advList.filter((el2) => ArrayFromSet.indexOf(el2) === -1); -// advList의 요소 중에서 ArrayFromSet에 존재하지 않는 요소를 찾아서 리턴해주기 - -console.log(result); diff --git a/Challenge/jaharim/reduceMaxValueNIndex/README.md b/Challenge/jaharim/reduceMaxValueNIndex/README.md deleted file mode 100644 index 02a22b52..00000000 --- a/Challenge/jaharim/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/jaharim/reduceMaxValueNIndex/solve.js b/Challenge/jaharim/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 86bc4f3d..00000000 --- a/Challenge/jaharim/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes - -let arr = []; -const findMaxIndex = inputArray.indexOf( - inputArray.reduce((prev, curr) => prev < curr ? curr : prev,0) - ); -const result = arr.push({ maxValue: inputArray[findMaxIndex], idx: findMaxIndex }); -console.log(arr[0]); diff --git a/Challenge/jaharim/reduceNameNickname/README.md b/Challenge/jaharim/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/jaharim/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/jaharim/reduceNameNickname/solve.js b/Challenge/jaharim/reduceNameNickname/solve.js deleted file mode 100644 index 6429d7fe..00000000 --- a/Challenge/jaharim/reduceNameNickname/solve.js +++ /dev/null @@ -1,20 +0,0 @@ -const inputArray = [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, -]; - -// write your codes - -const doReduce = inputArray.reduce((prev,curr) => { return {...prev, [curr.nickname] : curr.name, }},{}); - -console.log(doReduce); \ No newline at end of file diff --git a/Challenge/jaharim/reduceSum/README.md b/Challenge/jaharim/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/jaharim/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/jaharim/reduceSum/solve.js b/Challenge/jaharim/reduceSum/solve.js deleted file mode 100644 index d59e4d0c..00000000 --- a/Challenge/jaharim/reduceSum/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -const result = inputArray.reduce((prev, curr) => prev + curr, 0); -console.log(result); - diff --git a/Challenge/jaharim/sortByPrice/README.md b/Challenge/jaharim/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/jaharim/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/jaharim/sortByPrice/solve.js b/Challenge/jaharim/sortByPrice/solve.js deleted file mode 100644 index da91e0ff..00000000 --- a/Challenge/jaharim/sortByPrice/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - } -]; - -// write your codes - -const result = inputArray.sort((a,b) => a.price - b.price); - -console.log(result); - diff --git a/Challenge/jaharim/sortByPriceAndQuantity/README.md b/Challenge/jaharim/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/jaharim/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/jaharim/sortByPriceAndQuantity/solve.js b/Challenge/jaharim/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 5fb617a0..00000000 --- a/Challenge/jaharim/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,33 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - } -]; - -// write your codes - -const result = inputArray.sort((a,b) => a.price !== b.price ? a.price - b.price : a.quantity - b.quantity); - -console.log(result); diff --git a/Challenge/jaharim/spreadOperatorMaxValue/README.md b/Challenge/jaharim/spreadOperatorMaxValue/README.md deleted file mode 100644 index bbe94ad6..00000000 --- a/Challenge/jaharim/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 - -## Expected Output - -max : 10, min : 1 diff --git a/Challenge/jaharim/spreadOperatorMaxValue/solve.js b/Challenge/jaharim/spreadOperatorMaxValue/solve.js deleted file mode 100644 index d868a9e1..00000000 --- a/Challenge/jaharim/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [1,2,3,4,5,6,7,8,9,10]; - -// write your codes - -console.log(`max : ${Math.max(...inputArray)}, min : ${Math.min(...inputArray)}`); - diff --git a/Challenge/jiho-bae/everyArray/README.md b/Challenge/jiho-bae/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/jiho-bae/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/jiho-bae/everyArray/solve.js b/Challenge/jiho-bae/everyArray/solve.js deleted file mode 100644 index 42f613ee..00000000 --- a/Challenge/jiho-bae/everyArray/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [2, 4, 6, 8, 10]; - -// write your codes -let answer = inputArray.every((val) => val % 2 === 0); -console.log(answer); diff --git a/Challenge/jiho-bae/expDivOdd/README.md b/Challenge/jiho-bae/expDivOdd/README.md deleted file mode 100644 index 2d5e0676..00000000 --- a/Challenge/jiho-bae/expDivOdd/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output diff --git a/Challenge/jiho-bae/expDivOdd/solve.js b/Challenge/jiho-bae/expDivOdd/solve.js deleted file mode 100644 index 9d4afc69..00000000 --- a/Challenge/jiho-bae/expDivOdd/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -let answer = inputArray - .filter((val) => (val * val) % 3) - .reduce((sum, val) => sum + val, 0); -console.log(answer); diff --git a/Challenge/jiho-bae/figureSkating/README.md b/Challenge/jiho-bae/figureSkating/README.md deleted file mode 100644 index 648eeaa4..00000000 --- a/Challenge/jiho-bae/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -* 점수가 가장 높은 사람이 1등이다. -* 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -* 기술점수(TES)는 기본점수 * 수행점수(GOE)를 합산해 도출한다. -* 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -* 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -* 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 939 } ] diff --git a/Challenge/jiho-bae/figureSkating/solve.js b/Challenge/jiho-bae/figureSkating/solve.js deleted file mode 100644 index 842b00f0..00000000 --- a/Challenge/jiho-bae/figureSkating/solve.js +++ /dev/null @@ -1,98 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: "김연아", - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: "피겨의 신", - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: "아사다 마오", - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -]; - -// write your codes - -const players = inputArray.filter((player) => { - const { - goe: { jump, spin, step }, - } = player; - return ( - jump.length >= baseAssignment.jump && - spin.length >= baseAssignment.spin && - step.length >= baseAssignment.step - ); -}); - -let answer = players.map((player) => { - let score = 0; - const { - name, - goe: { jump, spin, step: stepScore }, - pcs, - penalty, - } = player; - - let jumpScore = - jump.length > 3 - ? jump - .sort((a, b) => b - a) - .slice(0, 3) - .reduce((s, v) => s + v, 0) - : jump.reduce((s, v) => s + v, 0); - - let spinScore = - spin.length > 3 - ? spin - .sort((a, b) => b - a) - .slice(0, 3) - .reduce((s, v) => s + v, 0) - : spin.reduce((s, v) => s + v, 0); - - score = - jumpScore * baseScore.jump + - spinScore * baseScore.spin + - stepScore * baseScore.step + - pcs - - penalty; - - return { - name, - score, - }; -}); - -console.log(answer.sort((a, b) => b - a)); diff --git a/Challenge/jiho-bae/filterAge/README.md b/Challenge/jiho-bae/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/jiho-bae/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/jiho-bae/filterAge/solve.js b/Challenge/jiho-bae/filterAge/solve.js deleted file mode 100644 index 0cba479f..00000000 --- a/Challenge/jiho-bae/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: "영미", - age: 25, - }, - { - name: "일미", - age: 35, - }, - { - name: "이미", - age: 45, - }, - { - name: "삼미", - age: 55, - }, -]; -// write your codes - -const answer = inputArray.filter((elem) => elem.age >= 30 && elem.age < 50); -console.log(answer); diff --git a/Challenge/jiho-bae/filterIntersection/README.md b/Challenge/jiho-bae/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/jiho-bae/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/jiho-bae/filterIntersection/solve.js b/Challenge/jiho-bae/filterIntersection/solve.js deleted file mode 100644 index 0c646189..00000000 --- a/Challenge/jiho-bae/filterIntersection/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -const answer = A.filter((val) => B.includes(val)); -console.log(answer); diff --git a/Challenge/jiho-bae/filterOdd/README.md b/Challenge/jiho-bae/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/jiho-bae/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/jiho-bae/filterOdd/solve.js b/Challenge/jiho-bae/filterOdd/solve.js deleted file mode 100644 index 30814adf..00000000 --- a/Challenge/jiho-bae/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const answer = inputArray.filter((val) => val % 2); -console.log(answer); diff --git a/Challenge/jiho-bae/findWord/README.md b/Challenge/jiho-bae/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/jiho-bae/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/jiho-bae/findWord/solve.js b/Challenge/jiho-bae/findWord/solve.js deleted file mode 100644 index 330750fa..00000000 --- a/Challenge/jiho-bae/findWord/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = ["잠", "자", "고", "싶", "다", "용가리"]; - -// write your codes - -// 1. -const answer = inputArray.some((val) => val === "용가리"); -console.log(answer); - -// 2. -const answer2 = inputArray.includes("용가리"); -console.log(answer2); diff --git a/Challenge/jiho-bae/forEachFilter/README.md b/Challenge/jiho-bae/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/jiho-bae/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/jiho-bae/forEachFilter/solve.js b/Challenge/jiho-bae/forEachFilter/solve.js deleted file mode 100644 index f52d9143..00000000 --- a/Challenge/jiho-bae/forEachFilter/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.filter((val) => val >= 40); -console.log(answer); diff --git a/Challenge/jiho-bae/forEachFilterIsNaN/README.md b/Challenge/jiho-bae/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/jiho-bae/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/jiho-bae/forEachFilterIsNaN/solve.js b/Challenge/jiho-bae/forEachFilterIsNaN/solve.js deleted file mode 100644 index 4c748a5b..00000000 --- a/Challenge/jiho-bae/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [1, 40, "라매", "개발자", 51.5, "a", 88]; - -// write your codes - -const answer = inputArray.filter((val) => !isNaN(val)); -console.log(answer); diff --git a/Challenge/jiho-bae/forEachMap/README.md b/Challenge/jiho-bae/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/jiho-bae/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/jiho-bae/forEachMap/solve.js b/Challenge/jiho-bae/forEachMap/solve.js deleted file mode 100644 index 515c9b38..00000000 --- a/Challenge/jiho-bae/forEachMap/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let answer = []; -inputArray.forEach((val) => answer.push(val + "%")); -console.log(answer); diff --git a/Challenge/jiho-bae/forEachReduce/README.md b/Challenge/jiho-bae/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/jiho-bae/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/jiho-bae/forEachReduce/solve.js b/Challenge/jiho-bae/forEachReduce/solve.js deleted file mode 100644 index 1f36a0f9..00000000 --- a/Challenge/jiho-bae/forEachReduce/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let sum = 0; -inputArray.forEach((val) => (sum += val)); -console.log(sum); diff --git a/Challenge/jiho-bae/mapAddPercent/README.md b/Challenge/jiho-bae/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/jiho-bae/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/jiho-bae/mapAddPercent/solve.js b/Challenge/jiho-bae/mapAddPercent/solve.js deleted file mode 100644 index e0e47818..00000000 --- a/Challenge/jiho-bae/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.map((val) => val + "%"); -console.log(answer); diff --git a/Challenge/jiho-bae/mapAppendOrder/README.md b/Challenge/jiho-bae/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/jiho-bae/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/jiho-bae/mapAppendOrder/solve.js b/Challenge/jiho-bae/mapAppendOrder/solve.js deleted file mode 100644 index 3244cdf8..00000000 --- a/Challenge/jiho-bae/mapAppendOrder/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = ["홍길동", "둘리", "루피"]; - -// write your codes - -const answer = inputArray.map((name, idx) => { - return { name, order: idx + 1 }; -}); -console.log(answer); diff --git a/Challenge/jiho-bae/recommendAd/README.md b/Challenge/jiho-bae/recommendAd/README.md deleted file mode 100644 index 132e8800..00000000 --- a/Challenge/jiho-bae/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/jiho-bae/recommendAd/solve.js b/Challenge/jiho-bae/recommendAd/solve.js deleted file mode 100644 index f899b2c9..00000000 --- a/Challenge/jiho-bae/recommendAd/solve.js +++ /dev/null @@ -1,31 +0,0 @@ -const userHistory = [ - { date: "2020-11-03", watched: ["KT", "BBQ"] }, - { date: "2020-11-04", watched: ["정관장", "KT", "딱좋은데이"] }, - { date: "2020-11-05", watched: ["그랑사가", "농심"] }, - { date: "2020-11-06", watched: ["BBQ"] }, - { date: "2020-11-07", watched: ["쌍용자동차", "BBQ", "KT"] }, - { date: "2020-11-08", watched: ["켈로그코리아", "빙그레"] }, - { date: "2020-11-09", watched: ["KT", "그랑사가", "빙그레"] }, -]; - -let advList = [ - "동원F&B", - "정관장", - "KT", - "BBQ", - "그랑사가", - "농심", - "딱좋은데이", - "빙그레", - "쌍용자동차", - "켈로그코리아", -]; - -// write your codes - -const set = new Set(); -userHistory.map((day) => day.watched.map((ad) => set.add(ad))); - -const watchedAd = Array.from(set); -let answer = advList.filter((ad) => !watchedAd.includes(ad)); -console.log(answer); diff --git a/Challenge/jiho-bae/reduceMaxValueNIndex/README.md b/Challenge/jiho-bae/reduceMaxValueNIndex/README.md deleted file mode 100644 index 02a22b52..00000000 --- a/Challenge/jiho-bae/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/jiho-bae/reduceMaxValueNIndex/solve.js b/Challenge/jiho-bae/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 6b3a7951..00000000 --- a/Challenge/jiho-bae/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes -const answer = inputArray.reduce( - (acc, val, i) => { - return { - maxValue: Math.max(acc.maxValue, val), - idx: val > acc.maxValue ? i : acc.idx, - }; - }, - { maxValue: 0, idx: 0 } -); -console.log(answer); diff --git a/Challenge/jiho-bae/reduceNameNickname/README.md b/Challenge/jiho-bae/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/jiho-bae/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/jiho-bae/reduceNameNickname/solve.js b/Challenge/jiho-bae/reduceNameNickname/solve.js deleted file mode 100644 index 5b933a79..00000000 --- a/Challenge/jiho-bae/reduceNameNickname/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: "홍길동", - nickname: "hong", - }, - { - name: "둘리", - nickname: "2li", - }, - { - name: "오스트랄로피테쿠스", - nickname: "1Cin", - }, -]; - -// write your codes - -const answer = inputArray.reduce((acc, { name, nickname }) => { - acc[nickname] = name; - return acc; -}, {}); -console.log(answer); diff --git a/Challenge/jiho-bae/reduceSum/README.md b/Challenge/jiho-bae/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/jiho-bae/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/jiho-bae/reduceSum/solve.js b/Challenge/jiho-bae/reduceSum/solve.js deleted file mode 100644 index 0f48c693..00000000 --- a/Challenge/jiho-bae/reduceSum/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -const answer = inputArray.reduce((sum, val) => sum + val, 0); -console.log(answer); diff --git a/Challenge/jiho-bae/sample/README.md b/Challenge/jiho-bae/sample/README.md deleted file mode 100644 index fe8db8d9..00000000 --- a/Challenge/jiho-bae/sample/README.md +++ /dev/null @@ -1,8 +0,0 @@ -# 문제제목 - -## 설명 - - -## Expected Output - -나와야 하는 output을 적는 곳입니다. diff --git a/Challenge/jiho-bae/sample/solve.js b/Challenge/jiho-bae/sample/solve.js deleted file mode 100644 index 533d937a..00000000 --- a/Challenge/jiho-bae/sample/solve.js +++ /dev/null @@ -1,4 +0,0 @@ -const inputArray = []; - -// write your codes - diff --git a/Challenge/jiho-bae/sortByPrice/README.md b/Challenge/jiho-bae/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/jiho-bae/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/jiho-bae/sortByPrice/solve.js b/Challenge/jiho-bae/sortByPrice/solve.js deleted file mode 100644 index ef74a449..00000000 --- a/Challenge/jiho-bae/sortByPrice/solve.js +++ /dev/null @@ -1,23 +0,0 @@ -const inputArray = [ - { - name: "사과", - price: 1000, - }, - { - name: "수박", - price: 5000, - }, - { - name: "당근", - price: 2000, - }, - { - name: "참외", - price: 10000, - }, -]; - -// write your codes - -inputArray.sort((a, b) => a.price - b.price); -console.log(inputArray); diff --git a/Challenge/jiho-bae/sortByPriceAndQuantity/README.md b/Challenge/jiho-bae/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/jiho-bae/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/jiho-bae/sortByPriceAndQuantity/solve.js b/Challenge/jiho-bae/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 61b88ae9..00000000 --- a/Challenge/jiho-bae/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,35 +0,0 @@ -const inputArray = [ - { - name: "사과", - price: 1000, - quantity: 2, - }, - { - name: "수박", - price: 5000, - quantity: 20, - }, - { - name: "당근", - price: 2000, - quantity: 50, - }, - { - name: "참외", - price: 5000, - quantity: 10, - }, - { - name: "오이", - price: 2000, - quantity: 49, - }, -]; - -// write your codes - -inputArray.sort((a, b) => - a.price === b.price ? a.quantity - b.quantity : a.price - b.price -); - -console.log(inputArray); diff --git a/Challenge/jiho-bae/spreadOperatorMaxValue/README.md b/Challenge/jiho-bae/spreadOperatorMaxValue/README.md deleted file mode 100644 index b4ffffdb..00000000 --- a/Challenge/jiho-bae/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# 문제제목 - -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 - - -## Expected Output - - -max : 10, min : 1 \ No newline at end of file diff --git a/Challenge/jiho-bae/spreadOperatorMaxValue/solve.js b/Challenge/jiho-bae/spreadOperatorMaxValue/solve.js deleted file mode 100644 index dda65eec..00000000 --- a/Challenge/jiho-bae/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; - -// write your codes - -let answer = `max : ${Math.max(...inputArray)}, min : ${Math.min( - ...inputArray -)}`; -console.log(answer); diff --git a/Challenge/jiyoung-dev/findWord/README.md b/Challenge/jiyoung-dev/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/jiyoung-dev/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/jiyoung-dev/findWord/solve.js b/Challenge/jiyoung-dev/findWord/solve.js deleted file mode 100644 index 701fa9e1..00000000 --- a/Challenge/jiyoung-dev/findWord/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.includes('용가리'); -} - -exports.solution = solution; - -// includes 메서드는 배열 내에 특정 요소가 포함되어 있는지 확인하여 true 또는 false를 반환한다. \ No newline at end of file diff --git a/Challenge/jiyoung-dev/findWord/solve.test.js b/Challenge/jiyoung-dev/findWord/solve.test.js deleted file mode 100644 index 804114f6..00000000 --- a/Challenge/jiyoung-dev/findWord/solve.test.js +++ /dev/null @@ -1,26 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['잠', '자', '고', '싶', '다', '용가리'], - answer: true, -}; -const test2 = { - input: ['맛있는', '용가리치킨'], - answer: false, -}; -const test3 = { - input: ['고질라', '용가리 ', '울트라맨'], - answer: false, -}; - -describe('findWord', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/jw-97/filterOdd/README.md b/Challenge/jw-97/filterOdd/README.md deleted file mode 100644 index cf9eda79..00000000 --- a/Challenge/jw-97/filterOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -홀수만 뽑아 배열로 만드세요 diff --git a/Challenge/jw-97/filterOdd/solve.js b/Challenge/jw-97/filterOdd/solve.js deleted file mode 100644 index 4993af22..00000000 --- a/Challenge/jw-97/filterOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// write your codes -function solution(inputArray) { - const result = inputArray.filter((el) => el %2 ===1); - return result; -} - -exports.solution = solution; diff --git a/Challenge/jw-97/filterOdd/solve.test.js b/Challenge/jw-97/filterOdd/solve.test.js deleted file mode 100644 index 8cfd7f5a..00000000 --- a/Challenge/jw-97/filterOdd/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [4, 2, 5, 1, 3], - answer: [5, 1, 3], -}; - -const test2 = { - input: [4, 2, 6, 8, 50, 16], - answer: [], -}; - -const test3 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], - answer: [1, 3, 5, 7, 9, 11], -}; - -describe('filterOdd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/kimyerimweb/everyArray/everyArray/README.md b/Challenge/kimyerimweb/everyArray/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/kimyerimweb/everyArray/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/kimyerimweb/everyArray/everyArray/solve.js b/Challenge/kimyerimweb/everyArray/everyArray/solve.js deleted file mode 100644 index 93ab8224..00000000 --- a/Challenge/kimyerimweb/everyArray/everyArray/solve.js +++ /dev/null @@ -1,4 +0,0 @@ -const inputArray = [2, 4, 6, 8, 10]; - -const answer = inputArray.every(x=> x % 2 === 0); -console.log(answer) \ No newline at end of file diff --git a/Challenge/kimyerimweb/expDivOdd/README.md b/Challenge/kimyerimweb/expDivOdd/README.md deleted file mode 100644 index c07ab10b..00000000 --- a/Challenge/kimyerimweb/expDivOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. diff --git a/Challenge/kimyerimweb/expDivOdd/solve.js b/Challenge/kimyerimweb/expDivOdd/solve.js deleted file mode 100644 index 4c80f9d7..00000000 --- a/Challenge/kimyerimweb/expDivOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -const answer = inputArray.map(x => x*x) - .filter(x => x % 3 === 1) - .reduce((prev,next) => (prev + next),0); - -console.log(answer); \ No newline at end of file diff --git a/Challenge/kimyerimweb/figureSkating/README.md b/Challenge/kimyerimweb/figureSkating/README.md deleted file mode 100644 index 54b85fbd..00000000 --- a/Challenge/kimyerimweb/figureSkating/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -- 점수가 가장 높은 사람이 1등이다. -- 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -- 기술점수(TES)는 기본점수 \* 수행점수(GOE)를 합산해 도출한다. -- 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -- 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -- 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. diff --git a/Challenge/kimyerimweb/figureSkating/solve.js b/Challenge/kimyerimweb/figureSkating/solve.js deleted file mode 100644 index 94530d14..00000000 --- a/Challenge/kimyerimweb/figureSkating/solve.js +++ /dev/null @@ -1,71 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -] - -//실격처리 거름 -const nonDQ = inputArray.filter(x => { - return x.goe.jump.length >= baseAssignment.jump && x.goe.spin.length >= baseAssignment.spin && x.goe.step.length >= baseAssignment.step -}) - -//실격 안된 선수들 점수 정렬/상위 3개만 선택/점수 계산 -let result = [] - -const calculPoint = nonDQ.forEach(el => { - let score = Object.entries(el.goe).reduce((acc,goeItem) => { - return acc + goeItem[1] - .sort((a,b)=>b - a) - .slice(0,3) - .reduce((goeItemAcc,x) => goeItemAcc + x * baseScore[goeItem[0]],0) - },0) - - score = score + el.pcs - el.penalty - - result.push({ - name: el.name, - score - }) -}) - -console.log(result.sort((a,b)=> b.score - a.score)) diff --git a/Challenge/kimyerimweb/filterAge/README.md b/Challenge/kimyerimweb/filterAge/README.md deleted file mode 100644 index 873a15c1..00000000 --- a/Challenge/kimyerimweb/filterAge/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 diff --git a/Challenge/kimyerimweb/filterAge/solve.js b/Challenge/kimyerimweb/filterAge/solve.js deleted file mode 100644 index 58dcfd41..00000000 --- a/Challenge/kimyerimweb/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, - ]; - -const answer = inputArray.filter(x => x.age >= 30 && x.age <50) - -console.log(answer) \ No newline at end of file diff --git a/Challenge/kimyerimweb/filterIntersection/README.md b/Challenge/kimyerimweb/filterIntersection/README.md deleted file mode 100644 index d7c9ad39..00000000 --- a/Challenge/kimyerimweb/filterIntersection/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! diff --git a/Challenge/kimyerimweb/filterIntersection/solve.js b/Challenge/kimyerimweb/filterIntersection/solve.js deleted file mode 100644 index a8d27b16..00000000 --- a/Challenge/kimyerimweb/filterIntersection/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], -} - -const answer = inputArray.A.filter(x => inputArray.B.includes(x)) - -console.log(answer) \ No newline at end of file diff --git a/Challenge/kimyerimweb/filterOdd/README.md b/Challenge/kimyerimweb/filterOdd/README.md deleted file mode 100644 index cf9eda79..00000000 --- a/Challenge/kimyerimweb/filterOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -홀수만 뽑아 배열로 만드세요 diff --git a/Challenge/kimyerimweb/filterOdd/solve.js b/Challenge/kimyerimweb/filterOdd/solve.js deleted file mode 100644 index 47d0057e..00000000 --- a/Challenge/kimyerimweb/filterOdd/solve.js +++ /dev/null @@ -1,23 +0,0 @@ -const test1 = { - input: [4, 2, 5, 1, 3], - answer: [5, 1, 3], - }; - - const test2 = { - input: [4, 2, 6, 8, 50, 16], - answer: [], - }; - - const test3 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], - answer: [1, 3, 5, 7, 9, 11], - }; - -function solution(inputArray) { - const answer = inputArray.filter(x => x % 2 === 1) - console.log(answer) -} - -solution(test1.input) -solution(test2.input) -solution(test3.input) diff --git a/Challenge/kimyerimweb/findWord/README.md b/Challenge/kimyerimweb/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/kimyerimweb/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/kimyerimweb/findWord/solve.js b/Challenge/kimyerimweb/findWord/solve.js deleted file mode 100644 index 46acf883..00000000 --- a/Challenge/kimyerimweb/findWord/solve.js +++ /dev/null @@ -1,20 +0,0 @@ -const test1 = { - input: ['잠', '자', '고', '싶', '다', '용가리'], - answer: true, - }; - const test2 = { - input: ['맛있는', '용가리치킨'], - answer: false, - }; - const test3 = { - input: ['고질라', '용가리 ', '울트라맨'], - answer: false, - }; - -function solution(inputArray) { - console.log(inputArray.includes('용가리')) -} - -solution(test1.input) -solution(test2.input) -solution(test3.input) \ No newline at end of file diff --git a/Challenge/kimyerimweb/forEachFilter/README.md b/Challenge/kimyerimweb/forEachFilter/README.md deleted file mode 100644 index 6dcbc7c2..00000000 --- a/Challenge/kimyerimweb/forEachFilter/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. diff --git a/Challenge/kimyerimweb/forEachFilter/solve.js b/Challenge/kimyerimweb/forEachFilter/solve.js deleted file mode 100644 index fec461e6..00000000 --- a/Challenge/kimyerimweb/forEachFilter/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const input = [100, 10, 20, 40] - -function solution(inputArray) { - console.log(inputArray.filter(x => x >= 40)) -} - -solution(input) \ No newline at end of file diff --git a/Challenge/kimyerimweb/forEachFilterIsNaN/README.md b/Challenge/kimyerimweb/forEachFilterIsNaN/README.md deleted file mode 100644 index 570c030e..00000000 --- a/Challenge/kimyerimweb/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. diff --git a/Challenge/kimyerimweb/forEachFilterIsNaN/solve.js b/Challenge/kimyerimweb/forEachFilterIsNaN/solve.js deleted file mode 100644 index 5c3dba18..00000000 --- a/Challenge/kimyerimweb/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const test1 = { - input: [1, 40, '라매', '개발자', 51.5, 'a', 88], - answer: [1, 40, 51.5, 88], - }; - - const test2 = { - input: [1, 2, 3, '4', 5, '6'], - answer: [1, 2, 3, 5], - }; - - const test3 = { - input: [-3, -2, -1, 0, 1, 2, 3], - answer: [-3, -2, -1, 0, 1, 2, 3], - }; - - -function solution(inputArray) { - console.log(inputArray.filter(x => !isNaN(x))) -} //'4','6'은 못거름 - -solution(test1.input) -solution(test2.input) -solution(test3.input) - - diff --git a/Challenge/kimyerimweb/forEachMap/README.md b/Challenge/kimyerimweb/forEachMap/README.md deleted file mode 100644 index 1e8e03c8..00000000 --- a/Challenge/kimyerimweb/forEachMap/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 diff --git a/Challenge/kimyerimweb/forEachMap/solve.js b/Challenge/kimyerimweb/forEachMap/solve.js deleted file mode 100644 index 2a424a4c..00000000 --- a/Challenge/kimyerimweb/forEachMap/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [100, 10, 20, 40] -const answer = [] - -inputArray.forEach(x => { - answer.push(x + '%') -}) - -console.log(answer) \ No newline at end of file diff --git a/Challenge/kimyerimweb/forEachReduce/README.md b/Challenge/kimyerimweb/forEachReduce/README.md deleted file mode 100644 index a984df2d..00000000 --- a/Challenge/kimyerimweb/forEachReduce/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 diff --git a/Challenge/kimyerimweb/forEachReduce/solve.js b/Challenge/kimyerimweb/forEachReduce/solve.js deleted file mode 100644 index ad973470..00000000 --- a/Challenge/kimyerimweb/forEachReduce/solve.js +++ /dev/null @@ -1,28 +0,0 @@ -const test1 = { - input: [100, 10, 20, 40], - answer: 170, - }; - - const test2 = { - input: [120, -20, -30, 0, 15], - answer: 85, - }; - - const test3 = { - input: [-10, -20, -30], - answer: -60, - }; - -function solution(inputArray) { - let answer = 0 - - inputArray.forEach(el => { - answer += el - }); - - console.log(answer) -} - -solution(test1.input) -solution(test2.input) -solution(test3.input) \ No newline at end of file diff --git a/Challenge/kimyerimweb/mapAddPercent/README.md b/Challenge/kimyerimweb/mapAddPercent/README.md deleted file mode 100644 index 75e73042..00000000 --- a/Challenge/kimyerimweb/mapAddPercent/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 diff --git a/Challenge/kimyerimweb/mapAddPercent/solve.js b/Challenge/kimyerimweb/mapAddPercent/solve.js deleted file mode 100644 index 3d3634d4..00000000 --- a/Challenge/kimyerimweb/mapAddPercent/solve.js +++ /dev/null @@ -1,2 +0,0 @@ -let input = [100, 10, 20, 40] -console.log(input.map(el => el += '%')) \ No newline at end of file diff --git a/Challenge/kimyerimweb/mapAppendOrder/README.md b/Challenge/kimyerimweb/mapAppendOrder/README.md deleted file mode 100644 index 1435623a..00000000 --- a/Challenge/kimyerimweb/mapAppendOrder/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 diff --git a/Challenge/kimyerimweb/mapAppendOrder/solve.js b/Challenge/kimyerimweb/mapAppendOrder/solve.js deleted file mode 100644 index 5bb7cfa0..00000000 --- a/Challenge/kimyerimweb/mapAppendOrder/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const input = ['홍길동', '둘리', '루피'] - -const answer = input.map((x,idx) => { - return { - name: x, - order: idx+1, - } -}) - -console.log(answer) - diff --git a/Challenge/kimyerimweb/recommendAd/README.md b/Challenge/kimyerimweb/recommendAd/README.md deleted file mode 100644 index 132e8800..00000000 --- a/Challenge/kimyerimweb/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/kimyerimweb/recommendAd/solve.js b/Challenge/kimyerimweb/recommendAd/solve.js deleted file mode 100644 index e696594c..00000000 --- a/Challenge/kimyerimweb/recommendAd/solve.js +++ /dev/null @@ -1,39 +0,0 @@ -const input = [ - '동원F&B', - '정관장', - 'KT', - 'BBQ', - '그랑사가', - '농심', - '딱좋은데이', - '빙그레', - '쌍용자동차', - '켈로그코리아', -] // answer: ['동원F&B'] - -const userHistory = [ - { date: '2020-11-03', watched: ['KT', 'BBQ'] }, - { date: '2020-11-04', watched: ['정관장', 'KT', '딱좋은데이'] }, - { date: '2020-11-05', watched: ['그랑사가', '농심'] }, - { date: '2020-11-06', watched: ['BBQ'] }, - { date: '2020-11-07', watched: ['쌍용자동차', 'BBQ', 'KT'] }, - { date: '2020-11-08', watched: ['켈로그코리아', '빙그레'] }, - { date: '2020-11-09', watched: ['KT', '그랑사가', '빙그레'] }, -]; - -function joinHistory(history) { - const result = [] - history.forEach(el => { - result.push(...el.watched) - }); - - return result -} - -let joinHis = joinHistory(userHistory) -joinHis = new Set(joinHis) -joinHis = [...joinHis] - -const result = input.filter(el => !joinHis.includes(el)) - -console.log(result) \ No newline at end of file diff --git a/Challenge/kimyerimweb/reduceMaxValueNIndex/README.md b/Challenge/kimyerimweb/reduceMaxValueNIndex/README.md deleted file mode 100644 index 965bdec6..00000000 --- a/Challenge/kimyerimweb/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 diff --git a/Challenge/kimyerimweb/reduceMaxValueNIndex/solve.js b/Challenge/kimyerimweb/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 4d685ca1..00000000 --- a/Challenge/kimyerimweb/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,38 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61] - -const answer = inputArray.reduce((acc,el,idx) => { - if(acc.maxValue < el){ - return { - maxValue: el, - idx - } - } - - return acc -},{ - maxValue: 0, - idx: -1 -}) - - -console.log(answer) - - - - - - - - - - - - - - - - - - - -// answer: { maxValue: 85, idx: 7 } diff --git a/Challenge/kimyerimweb/reduceNameNickname/README.md b/Challenge/kimyerimweb/reduceNameNickname/README.md deleted file mode 100644 index b6920e05..00000000 --- a/Challenge/kimyerimweb/reduceNameNickname/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 diff --git a/Challenge/kimyerimweb/reduceNameNickname/solve.js b/Challenge/kimyerimweb/reduceNameNickname/solve.js deleted file mode 100644 index 990833fe..00000000 --- a/Challenge/kimyerimweb/reduceNameNickname/solve.js +++ /dev/null @@ -1,23 +0,0 @@ -const inputArray = [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, -] - -const answer = inputArray.reduce((acc,el) => { - return { - ...acc, - [el.nickname] : el.name, - } -},{}) - -console.log(answer) \ No newline at end of file diff --git a/Challenge/kimyerimweb/reduceSum/README.md b/Challenge/kimyerimweb/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/kimyerimweb/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/kimyerimweb/reduceSum/solve.js b/Challenge/kimyerimweb/reduceSum/solve.js deleted file mode 100644 index 43d744c3..00000000 --- a/Challenge/kimyerimweb/reduceSum/solve.js +++ /dev/null @@ -1,3 +0,0 @@ -const input = [10, 3, 20, 5, 8, 60] - -console.log(input.reduce((acc,el) => acc+el ,0)) \ No newline at end of file diff --git a/Challenge/kimyerimweb/sortByPrice/README.md b/Challenge/kimyerimweb/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/kimyerimweb/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/kimyerimweb/sortByPrice/solve.js b/Challenge/kimyerimweb/sortByPrice/solve.js deleted file mode 100644 index 0decf5da..00000000 --- a/Challenge/kimyerimweb/sortByPrice/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const input = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, -] - -const answer = input.sort((x,y) => x.price - y.price) - -console.log(answer) \ No newline at end of file diff --git a/Challenge/kimyerimweb/sortByPriceAndQuantity/README.md b/Challenge/kimyerimweb/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/kimyerimweb/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/kimyerimweb/sortByPriceAndQuantity/solve.js b/Challenge/kimyerimweb/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 893e38d6..00000000 --- a/Challenge/kimyerimweb/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,33 +0,0 @@ -const input = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, -] - -const answer = input.sort(a,b => { - return a.price - b.price || a.quantity - b.quantity -}) - -console.log(answer) \ No newline at end of file diff --git a/Challenge/kimyerimweb/spreadOperatorMaxValue/README.md b/Challenge/kimyerimweb/spreadOperatorMaxValue/README.md deleted file mode 100644 index 164b68a1..00000000 --- a/Challenge/kimyerimweb/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 diff --git a/Challenge/kimyerimweb/spreadOperatorMaxValue/solve.js b/Challenge/kimyerimweb/spreadOperatorMaxValue/solve.js deleted file mode 100644 index 0b275a7a..00000000 --- a/Challenge/kimyerimweb/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const input = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] - -const maxVal = Math.max(...input) -const minVal = Math.min(...input) - -console.log(`max : ${maxVal}, min : ${minVal}`) diff --git a/Challenge/lazy-sky/everyArray/README.md b/Challenge/lazy-sky/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/lazy-sky/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/lazy-sky/everyArray/solve.js b/Challenge/lazy-sky/everyArray/solve.js deleted file mode 100644 index cb1413fd..00000000 --- a/Challenge/lazy-sky/everyArray/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -function solution(inputArray) { - return inputArray.every((x) => x % 2 === 0); -} - -exports.solution = solution; diff --git a/Challenge/lazy-sky/everyArray/solve.test.js b/Challenge/lazy-sky/everyArray/solve.test.js deleted file mode 100644 index b03e4791..00000000 --- a/Challenge/lazy-sky/everyArray/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [2, 4, 6, 8, 10], - answer: true, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: false, -}; - -describe('everyArray', () => { - test('모두 짝수면 true여야 한다.', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('홀수가 있으면 false여야 한다.', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/lazy-sky/expDivOdd/README.md b/Challenge/lazy-sky/expDivOdd/README.md deleted file mode 100644 index c07ab10b..00000000 --- a/Challenge/lazy-sky/expDivOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. diff --git a/Challenge/lazy-sky/expDivOdd/solve.js b/Challenge/lazy-sky/expDivOdd/solve.js deleted file mode 100644 index 601a2365..00000000 --- a/Challenge/lazy-sky/expDivOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// 제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. - -function solution(inputArray) { - return inputArray.map((x) => x * x).filter((x) => x % 3 === 1).reduce((acc, cur) => acc + cur); -} - -exports.solution = solution; diff --git a/Challenge/lazy-sky/expDivOdd/solve.test.js b/Challenge/lazy-sky/expDivOdd/solve.test.js deleted file mode 100644 index ca37fcc3..00000000 --- a/Challenge/lazy-sky/expDivOdd/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 7, 3, 4, 6], - answer: 66, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: 168, -}; - -describe('everyArray', () => { - test('1, 7, 3, 4, 6', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('2, 3, 6, 8, 10', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/lazy-sky/filterAge/README.md b/Challenge/lazy-sky/filterAge/README.md deleted file mode 100644 index 873a15c1..00000000 --- a/Challenge/lazy-sky/filterAge/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 diff --git a/Challenge/lazy-sky/filterAge/solve.js b/Challenge/lazy-sky/filterAge/solve.js deleted file mode 100644 index 36d14d35..00000000 --- a/Challenge/lazy-sky/filterAge/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -// 배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -function solution(inputArray) { - return inputArray.filter((x) => (x.age >= 30 && x.age < 50)); -} - -exports.solution = solution; diff --git a/Challenge/lazy-sky/filterAge/solve.test.js b/Challenge/lazy-sky/filterAge/solve.test.js deleted file mode 100644 index b9081601..00000000 --- a/Challenge/lazy-sky/filterAge/solve.test.js +++ /dev/null @@ -1,32 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, - ], - answer: [ - { name: '일미', age: 35 }, - { name: '이미', age: 45 }, - ], -}; - -describe('filterAge', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/lazy-sky/sortByPrice/README.md b/Challenge/lazy-sky/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/lazy-sky/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/lazy-sky/sortByPrice/solve.js b/Challenge/lazy-sky/sortByPrice/solve.js deleted file mode 100644 index e3f162cb..00000000 --- a/Challenge/lazy-sky/sortByPrice/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// 배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -function solution(inputArray) { - return inputArray.sort((a, b) => a.price - b.price); -} - -exports.solution = solution; diff --git a/Challenge/lazy-sky/sortByPrice/solve.test.js b/Challenge/lazy-sky/sortByPrice/solve.test.js deleted file mode 100644 index 3d6a3431..00000000 --- a/Challenge/lazy-sky/sortByPrice/solve.test.js +++ /dev/null @@ -1,34 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, - ], - answer: [ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 }, - ], -}; - -describe('sortByPrice', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/pkiop/everyArray/README.md b/Challenge/pkiop/everyArray/README.md deleted file mode 100644 index e09268b7..00000000 --- a/Challenge/pkiop/everyArray/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 diff --git a/Challenge/pkiop/everyArray/solve.js b/Challenge/pkiop/everyArray/solve.js deleted file mode 100644 index cde699b5..00000000 --- a/Challenge/pkiop/everyArray/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -function solution(inputArray) { - const answer = inputArray.every((el) => el % 2 === 0); - return answer; -} - -exports.solution = solution; diff --git a/Challenge/pkiop/everyArray/solve.test.js b/Challenge/pkiop/everyArray/solve.test.js deleted file mode 100644 index b03e4791..00000000 --- a/Challenge/pkiop/everyArray/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [2, 4, 6, 8, 10], - answer: true, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: false, -}; - -describe('everyArray', () => { - test('모두 짝수면 true여야 한다.', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('홀수가 있으면 false여야 한다.', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/pkiop/expDivOdd/README.md b/Challenge/pkiop/expDivOdd/README.md deleted file mode 100644 index c07ab10b..00000000 --- a/Challenge/pkiop/expDivOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. diff --git a/Challenge/pkiop/expDivOdd/solve.js b/Challenge/pkiop/expDivOdd/solve.js deleted file mode 100644 index 8c5bcbe4..00000000 --- a/Challenge/pkiop/expDivOdd/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -function solution(inputArray) { - const result = inputArray - .map((el) => el * el) - .filter((el) => el % 3 === 1) - .reduce((acc, el) => acc + el, 0); - return result; -} - -exports.solution = solution; diff --git a/Challenge/pkiop/expDivOdd/solve.test.js b/Challenge/pkiop/expDivOdd/solve.test.js deleted file mode 100644 index ca37fcc3..00000000 --- a/Challenge/pkiop/expDivOdd/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 7, 3, 4, 6], - answer: 66, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: 168, -}; - -describe('everyArray', () => { - test('1, 7, 3, 4, 6', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('2, 3, 6, 8, 10', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/pkiop/figureSkating/README.md b/Challenge/pkiop/figureSkating/README.md deleted file mode 100644 index 54b85fbd..00000000 --- a/Challenge/pkiop/figureSkating/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -- 점수가 가장 높은 사람이 1등이다. -- 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -- 기술점수(TES)는 기본점수 \* 수행점수(GOE)를 합산해 도출한다. -- 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -- 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -- 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. diff --git a/Challenge/pkiop/figureSkating/solve.js b/Challenge/pkiop/figureSkating/solve.js deleted file mode 100644 index cd6c2143..00000000 --- a/Challenge/pkiop/figureSkating/solve.js +++ /dev/null @@ -1,52 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -function solution(inputArray) { - // write your codes - - const isNotDisqualification = (el) => { - if (el.goe.jump.length < baseAssignment.jump) return false; - if (el.goe.spin.length < baseAssignment.spin) return false; - if (el.goe.step.length < baseAssignment.step) return false; - return true; - }; - - const calculateScoreWithName = (el) => { - const tes = Object.entries(el.goe).reduce((acc, goeItem) => { - return ( - acc + - goeItem[1] - .sort((a, b) => b - a) - .slice(0, 3) - .reduce((goeAcc, score) => { - return goeAcc + baseScore[goeItem[0]] * score; - }, 0) - ); - }, 0); - return { - name: el.name, - score: tes + el.pcs - el.penalty, - }; - }; - - const compareByScore = (a, b) => b.score - a.score; - - const result = inputArray - .filter(isNotDisqualification) - .map(calculateScoreWithName) - .sort(compareByScore); - return result; -} - -exports.solution = solution; -// write your codes diff --git a/Challenge/pkiop/figureSkating/solve.test.js b/Challenge/pkiop/figureSkating/solve.test.js deleted file mode 100644 index 7b96bd29..00000000 --- a/Challenge/pkiop/figureSkating/solve.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, - ], - answer: [ - { name: '김연아', score: 1055 }, - { name: '아사다 마오', score: 939 }, - ], -}; - -describe('figureSkating', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/pkiop/filterAge/README.md b/Challenge/pkiop/filterAge/README.md deleted file mode 100644 index 873a15c1..00000000 --- a/Challenge/pkiop/filterAge/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 diff --git a/Challenge/pkiop/filterAge/solve.js b/Challenge/pkiop/filterAge/solve.js deleted file mode 100644 index 7ce80703..00000000 --- a/Challenge/pkiop/filterAge/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter(({ age }) => age >= 30 && age < 50); -} - -exports.solution = solution; diff --git a/Challenge/pkiop/filterAge/solve.test.js b/Challenge/pkiop/filterAge/solve.test.js deleted file mode 100644 index b9081601..00000000 --- a/Challenge/pkiop/filterAge/solve.test.js +++ /dev/null @@ -1,32 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, - ], - answer: [ - { name: '일미', age: 35 }, - { name: '이미', age: 45 }, - ], -}; - -describe('filterAge', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/pkiop/filterIntersection/README.md b/Challenge/pkiop/filterIntersection/README.md deleted file mode 100644 index b0209d9a..00000000 --- a/Challenge/pkiop/filterIntersection/README.md +++ /dev/null @@ -1,7 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output diff --git a/Challenge/pkiop/filterIntersection/solve.js b/Challenge/pkiop/filterIntersection/solve.js deleted file mode 100644 index bc4b6641..00000000 --- a/Challenge/pkiop/filterIntersection/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -function solution(inputArray1, inputArray2) { - return inputArray1.filter((el) => inputArray2.includes(el)); -} - -exports.solution = solution; diff --git a/Challenge/pkiop/filterIntersection/solve.test.js b/Challenge/pkiop/filterIntersection/solve.test.js deleted file mode 100644 index 2d93d232..00000000 --- a/Challenge/pkiop/filterIntersection/solve.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], - }, - answer: [3, 4, 5], -}; - -describe('filterAge', () => { - test('test1', () => { - expect(solution(test1.input.A, test1.input.B)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/pkiop/filterOdd/README.md b/Challenge/pkiop/filterOdd/README.md deleted file mode 100644 index cf9eda79..00000000 --- a/Challenge/pkiop/filterOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -홀수만 뽑아 배열로 만드세요 diff --git a/Challenge/pkiop/filterOdd/solve.js b/Challenge/pkiop/filterOdd/solve.js deleted file mode 100644 index 0773b8db..00000000 --- a/Challenge/pkiop/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter((el) => el % 2 === 1); -} - -exports.solution = solution; diff --git a/Challenge/pkiop/filterOdd/solve.test.js b/Challenge/pkiop/filterOdd/solve.test.js deleted file mode 100644 index fe0fe139..00000000 --- a/Challenge/pkiop/filterOdd/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [4, 2, 5, 1, 3], - answer: [5, 1, 3], -}; - -describe('filterOdd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/pkiop/forEachFilter/README.md b/Challenge/pkiop/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/pkiop/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/pkiop/forEachFilter/solve.js b/Challenge/pkiop/forEachFilter/solve.js deleted file mode 100644 index 01767cdf..00000000 --- a/Challenge/pkiop/forEachFilter/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let answer = []; -inputArray.forEach(el => { - if(el >= 40) { - answer.push(el); - } -}) -console.log(answer); - diff --git a/Challenge/pkiop/forEachMap/README.md b/Challenge/pkiop/forEachMap/README.md deleted file mode 100644 index c085047c..00000000 --- a/Challenge/pkiop/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -170 diff --git a/Challenge/pkiop/forEachMap/solve.js b/Challenge/pkiop/forEachMap/solve.js deleted file mode 100644 index d47f340b..00000000 --- a/Challenge/pkiop/forEachMap/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let answer = []; -inputArray.forEach((el) => { - answer.push(el + '%'); -}) -console.log(answer); - diff --git a/Challenge/pkiop/forEachReduce/README.md b/Challenge/pkiop/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/pkiop/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/pkiop/forEachReduce/solve.js b/Challenge/pkiop/forEachReduce/solve.js deleted file mode 100644 index 48053f73..00000000 --- a/Challenge/pkiop/forEachReduce/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let sum = 0; -inputArray.forEach((el) => { - sum += el; -}) -console.log(sum); - diff --git a/Challenge/pkiop/mapAddPercent/README.md b/Challenge/pkiop/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/pkiop/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/pkiop/mapAddPercent/solve.js b/Challenge/pkiop/mapAddPercent/solve.js deleted file mode 100644 index 091900a6..00000000 --- a/Challenge/pkiop/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.map(el => el + '%'); -console.log(answer); diff --git a/Challenge/pkiop/mapAppendOrder/README.md b/Challenge/pkiop/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/pkiop/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/pkiop/mapAppendOrder/solve.js b/Challenge/pkiop/mapAppendOrder/solve.js deleted file mode 100644 index 4135f9f1..00000000 --- a/Challenge/pkiop/mapAppendOrder/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes - -const answer = inputArray.map((el, idx) => { - return { - name: el, - order: idx+1, - } -}) - -console.log(answer); - diff --git a/Challenge/pkiop/reduceMaxValueNIndex/README.md b/Challenge/pkiop/reduceMaxValueNIndex/README.md deleted file mode 100644 index 63deb57a..00000000 --- a/Challenge/pkiop/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 } diff --git a/Challenge/pkiop/reduceMaxValueNIndex/solve.js b/Challenge/pkiop/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 87d01a16..00000000 --- a/Challenge/pkiop/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,14 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes - -const answer = inputArray.reduce((acc, el, index) => { - if(acc?.maxValue < el) { - return { - maxValue: el, - idx: index, - } - } - return acc; -}, { maxValue: 0, idx: -1}) -console.log(answer); diff --git a/Challenge/pkiop/reduceNameNickname/README.md b/Challenge/pkiop/reduceNameNickname/README.md deleted file mode 100644 index b693b7f5..00000000 --- a/Challenge/pkiop/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -문제에 대한 설명을 적는 곳입니다. - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/pkiop/reduceNameNickname/solve.js b/Challenge/pkiop/reduceNameNickname/solve.js deleted file mode 100644 index d5f13120..00000000 --- a/Challenge/pkiop/reduceNameNickname/solve.js +++ /dev/null @@ -1,26 +0,0 @@ -const inputArray = [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - } -]; - -// write your codes - -const result = inputArray.reduce((acc, el) => { - return { - ...acc, - [el.nickname]: el.name, - } -}, {}); - -console.log(result); - diff --git a/Challenge/pkiop/reduceSum/README.md b/Challenge/pkiop/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/pkiop/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/pkiop/reduceSum/solve.js b/Challenge/pkiop/reduceSum/solve.js deleted file mode 100644 index 1e248b51..00000000 --- a/Challenge/pkiop/reduceSum/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -const answer = inputArray.reduce((acc, el) => { - return acc + el; -}, 0); -console.log(answer); - diff --git a/Challenge/pkiop/sortByPrice/README.md b/Challenge/pkiop/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/pkiop/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/pkiop/sortByPrice/solve.js b/Challenge/pkiop/sortByPrice/solve.js deleted file mode 100644 index 1caf5595..00000000 --- a/Challenge/pkiop/sortByPrice/solve.js +++ /dev/null @@ -1,24 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - } -]; - -// write your codes - -const result = inputArray.sort((a, b) => a.price - b.price); -console.log(result); - diff --git a/Challenge/pkiop/sortByPriceAndQuantity/README.md b/Challenge/pkiop/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/pkiop/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/pkiop/sortByPriceAndQuantity/solve.js b/Challenge/pkiop/sortByPriceAndQuantity/solve.js deleted file mode 100644 index a66acdfe..00000000 --- a/Challenge/pkiop/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,41 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - } -]; - -// write your codes - -// const result = inputArray.sort((a, b) => { -// if(a.price !== b.price) { -// return a.price - b.price; -// } -// return a.quantity - b.quantity; -// }); -const result = inputArray.sort((a, b) => { - return a.price - b.price || a.quantity - b.quantity; -}); -console.log(result); - diff --git a/Challenge/pkioppusan/filterOdd/README.md b/Challenge/pkioppusan/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/pkioppusan/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/pkioppusan/filterOdd/solve.js b/Challenge/pkioppusan/filterOdd/solve.js deleted file mode 100644 index 04c8208a..00000000 --- a/Challenge/pkioppusan/filterOdd/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const result = inputArray.filter(el => el % 2 === 1); -console.log(result); - - diff --git a/Challenge/pozafly/expDivOdd/README.md b/Challenge/pozafly/expDivOdd/README.md deleted file mode 100644 index ca68f81d..00000000 --- a/Challenge/pozafly/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -66 diff --git a/Challenge/pozafly/expDivOdd/solve.js b/Challenge/pozafly/expDivOdd/solve.js deleted file mode 100644 index 011bcf6c..00000000 --- a/Challenge/pozafly/expDivOdd/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [ 1, 7, 3, 4, 6 ]; - -// write your codes - -const result = inputArray - .map(value => value * value) - .filter(value => value % 3) - .reduce((acc, cur) => acc + cur, 0); - -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/filterAge/README.md b/Challenge/pozafly/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/pozafly/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/pozafly/filterAge/solve.js b/Challenge/pozafly/filterAge/solve.js deleted file mode 100644 index 40f64ab0..00000000 --- a/Challenge/pozafly/filterAge/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes - -const result = inputArray.filter(el => { - return el.age >= 30 && el.age < 50 -}); - -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/filterOdd/README.md b/Challenge/pozafly/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/pozafly/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/pozafly/filterOdd/solve.js b/Challenge/pozafly/filterOdd/solve.js deleted file mode 100644 index 239e3b67..00000000 --- a/Challenge/pozafly/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const result = inputArray.filter(el => el % 2);; -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/findWord/README.md b/Challenge/pozafly/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/pozafly/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/pozafly/findWord/solve.js b/Challenge/pozafly/findWord/solve.js deleted file mode 100644 index 10816219..00000000 --- a/Challenge/pozafly/findWord/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; - -// write your codes - -const result = inputArray.includes('용가리'); -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/forEachFilter/README.md b/Challenge/pozafly/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/pozafly/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/pozafly/forEachFilter/solve.js b/Challenge/pozafly/forEachFilter/solve.js deleted file mode 100644 index 078c4273..00000000 --- a/Challenge/pozafly/forEachFilter/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.filter(el => el >= 40); -console.log(result); - -const newArr = []; -inputArray.forEach(el => { - if(el >= 40) newArr.push(el); -}); -console.log(newArr); \ No newline at end of file diff --git a/Challenge/pozafly/forEachFilterIsNaN/README.md b/Challenge/pozafly/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/pozafly/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/pozafly/forEachFilterIsNaN/solve.js b/Challenge/pozafly/forEachFilterIsNaN/solve.js deleted file mode 100644 index 8b7348a2..00000000 --- a/Challenge/pozafly/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes - -const result = inputArray.filter(el => !isNaN(el)); -console.log(result); - -const newArr = []; -inputArray.forEach(el => { - if(!isNaN(el)) newArr.push(el); -}); -console.log(newArr); \ No newline at end of file diff --git a/Challenge/pozafly/forEachMap/README.md b/Challenge/pozafly/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/pozafly/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/pozafly/forEachMap/solve.js b/Challenge/pozafly/forEachMap/solve.js deleted file mode 100644 index c64203f0..00000000 --- a/Challenge/pozafly/forEachMap/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = []; -inputArray.forEach(el => { - result.push(`${el}%`); -}); - -console.log(result) \ No newline at end of file diff --git a/Challenge/pozafly/forEachReduce/README.md b/Challenge/pozafly/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/pozafly/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/pozafly/forEachReduce/solve.js b/Challenge/pozafly/forEachReduce/solve.js deleted file mode 100644 index 3c014ec4..00000000 --- a/Challenge/pozafly/forEachReduce/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let value = 0; -inputArray.forEach(el => value += el); - -console.log(value); \ No newline at end of file diff --git a/Challenge/pozafly/mapAddPercent/README.md b/Challenge/pozafly/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/pozafly/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/pozafly/mapAddPercent/solve.js b/Challenge/pozafly/mapAddPercent/solve.js deleted file mode 100644 index f52d5f90..00000000 --- a/Challenge/pozafly/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.map(el => `${el}%`); -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/mapAppendOrder/README.md b/Challenge/pozafly/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/pozafly/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/pozafly/mapAppendOrder/solve.js b/Challenge/pozafly/mapAppendOrder/solve.js deleted file mode 100644 index 5d130d73..00000000 --- a/Challenge/pozafly/mapAppendOrder/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes - -const result = inputArray.map((el, index) => ({ name: el, order: index + 1 })); - -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/reduceMaxValueNIndex/README.md b/Challenge/pozafly/reduceMaxValueNIndex/README.md deleted file mode 100644 index 02a22b52..00000000 --- a/Challenge/pozafly/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/pozafly/reduceMaxValueNIndex/solve.js b/Challenge/pozafly/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 5bea41cd..00000000 --- a/Challenge/pozafly/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,16 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes - -const result = inputArray.reduce((acc, cur, idx) => { - if(acc?.maxValue < cur) { - return { - maxValue: cur, - idx - } - } - return acc; -}, { maxValue: 0, idx: -1 }); - - -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/reduceNameNickname/README.md b/Challenge/pozafly/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/pozafly/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/pozafly/reduceNameNickname/solve.js b/Challenge/pozafly/reduceNameNickname/solve.js deleted file mode 100644 index c1242275..00000000 --- a/Challenge/pozafly/reduceNameNickname/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, -]; - -// write your codes - -const result = inputArray.reduce((acc, cur) => { - return { - ...acc, - [cur.nickname]: cur.name, - } -}, {}); - -console.log(result); \ No newline at end of file diff --git a/Challenge/pozafly/reduceSum/README.md b/Challenge/pozafly/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/pozafly/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/pozafly/reduceSum/solve.js b/Challenge/pozafly/reduceSum/solve.js deleted file mode 100644 index afe524fb..00000000 --- a/Challenge/pozafly/reduceSum/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -const value = inputArray.reduce((acc, cur) => acc + cur, 0); - -console.log(value); \ No newline at end of file diff --git a/Challenge/pozafly/sortByPrice/README.md b/Challenge/pozafly/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/pozafly/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/pozafly/sortByPrice/solve.js b/Challenge/pozafly/sortByPrice/solve.js deleted file mode 100644 index 88dd163c..00000000 --- a/Challenge/pozafly/sortByPrice/solve.js +++ /dev/null @@ -1,24 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - } -]; - -// write your codes - -inputArray.sort((a, b) => a.price - b.price); - -console.log(inputArray); \ No newline at end of file diff --git a/Challenge/pozafly/sortByPriceAndQuantity/README.md b/Challenge/pozafly/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/pozafly/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/pozafly/sortByPriceAndQuantity/solve.js b/Challenge/pozafly/sortByPriceAndQuantity/solve.js deleted file mode 100644 index ceb30024..00000000 --- a/Challenge/pozafly/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,44 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - } -]; - -// write your codes - -// inputArray.sort((a, b) => { -// if(a.price > b.price) return 1; -// if(a.price === b.price) { -// return a.quantity - b.quantity; -// } -// if(a.price < b.price) return -1; -// }); - -inputArray.sort((a, b) => { - return a.price - b.price || a.quantity - b.quantity; -}); - -console.log(inputArray); - diff --git a/Challenge/sharpcoder312/expDivOdd/README.md b/Challenge/sharpcoder312/expDivOdd/README.md deleted file mode 100644 index 6749b510..00000000 --- a/Challenge/sharpcoder312/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -// 제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -59 diff --git a/Challenge/sharpcoder312/expDivOdd/solve.js b/Challenge/sharpcoder312/expDivOdd/solve.js deleted file mode 100644 index 52b3c1e3..00000000 --- a/Challenge/sharpcoder312/expDivOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [ 1, 7, 3, 4, 6 ]; - -// write your codes - -const nums = inputArray.filter(num => {return num**2 % 3 === 1}); -const answer = nums.reduce((acc, cur) => {return acc + cur}, 0) -console.log(answer); \ No newline at end of file diff --git a/Challenge/sharpcoder312/filterAge/README.md b/Challenge/sharpcoder312/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/sharpcoder312/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/sharpcoder312/filterAge/solve.js b/Challenge/sharpcoder312/filterAge/solve.js deleted file mode 100644 index 5a962a6b..00000000 --- a/Challenge/sharpcoder312/filterAge/solve.js +++ /dev/null @@ -1,29 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes - -// const answer = inputArray.filter(function (person) { -// return person.age >= 30 && person.age < 50 // 30 <= person.age < 50 - 이런 실수 하지않기 -// }); -// console.log(answer); - -const answer = inputArray.filter(person => person.age >= 30 && person.age < 50) -console.log(answer); - - diff --git a/Challenge/sharpcoder312/filterOdd/README.md b/Challenge/sharpcoder312/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/sharpcoder312/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/sharpcoder312/filterOdd/solve.js b/Challenge/sharpcoder312/filterOdd/solve.js deleted file mode 100644 index dbf7e85c..00000000 --- a/Challenge/sharpcoder312/filterOdd/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const answer = inputArray.filter(num => num % 2 === 1); -console.log(answer); - diff --git a/Challenge/sharpcoder312/forEachFilter/README.md b/Challenge/sharpcoder312/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/sharpcoder312/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/sharpcoder312/forEachFilter/solve.js b/Challenge/sharpcoder312/forEachFilter/solve.js deleted file mode 100644 index 94b359e8..00000000 --- a/Challenge/sharpcoder312/forEachFilter/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -let nums = []; -inputArray.forEach(num => { - if(num >= 40) { - nums.push(num); - } -}) -console.log(nums); \ No newline at end of file diff --git a/Challenge/sharpcoder312/forEachMap/README.md b/Challenge/sharpcoder312/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/sharpcoder312/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/sharpcoder312/forEachMap/solve.js b/Challenge/sharpcoder312/forEachMap/solve.js deleted file mode 100644 index 31863c1a..00000000 --- a/Challenge/sharpcoder312/forEachMap/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = []; -inputArray.forEach((num) => { - answer.push(num + '%'); -}) -console.log(answer); - - diff --git a/Challenge/sharpcoder312/forEachReduce/README.md b/Challenge/sharpcoder312/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/sharpcoder312/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/sharpcoder312/forEachReduce/solve.js b/Challenge/sharpcoder312/forEachReduce/solve.js deleted file mode 100644 index 484de08e..00000000 --- a/Challenge/sharpcoder312/forEachReduce/solve.js +++ /dev/null @@ -1,28 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - - -// method 01 -const answer1 = inputArray.reduce((acc, cur) => { - return acc + cur; -}, 0); -console.log(answer1); - - -// method 02 -let answer2 = 0; -inputArray.forEach((num, i) => { - for (; i < inputArray.length; i++) { - return answer2 = answer2 + inputArray[i] - } -}) -console.log(answer2); - - -// method 03 * -let answer3 = 0; -inputArray.forEach((num) => { - answer3 += num -}) -console.log(answer3); \ No newline at end of file diff --git a/Challenge/sharpcoder312/mapAddPercent/README.md b/Challenge/sharpcoder312/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/sharpcoder312/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/sharpcoder312/mapAddPercent/solve.js b/Challenge/sharpcoder312/mapAddPercent/solve.js deleted file mode 100644 index ba4a6229..00000000 --- a/Challenge/sharpcoder312/mapAddPercent/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const answer = inputArray.map(num => num + "%") -console.log(answer) - -// const answer = inputArray.map((num) => -// num + "%" -// ) -// const answer = inputArray.map((num) => { -// return num + "%" -// }) \ No newline at end of file diff --git a/Challenge/sharpcoder312/mapAppendOrder/README.md b/Challenge/sharpcoder312/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/sharpcoder312/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/sharpcoder312/mapAppendOrder/solve.js b/Challenge/sharpcoder312/mapAppendOrder/solve.js deleted file mode 100644 index 8ed0401b..00000000 --- a/Challenge/sharpcoder312/mapAppendOrder/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes - -const answer = inputArray.map((name, order) => { - return { - name: name, - order: order+1, - } -}) - -console.log(answer); \ No newline at end of file diff --git a/Challenge/sharpcoder312/reduceSum/README.md b/Challenge/sharpcoder312/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/sharpcoder312/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/sharpcoder312/reduceSum/solve.js b/Challenge/sharpcoder312/reduceSum/solve.js deleted file mode 100644 index 1b2dc6ac..00000000 --- a/Challenge/sharpcoder312/reduceSum/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -const answer = inputArray.reduce((acc, cur)=> { - return acc + cur; -},0) -console.log(answer); \ No newline at end of file diff --git a/Challenge/sorisori01/filterAge/README.md b/Challenge/sorisori01/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/sorisori01/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/sorisori01/filterAge/solve.js b/Challenge/sorisori01/filterAge/solve.js deleted file mode 100644 index 62845643..00000000 --- a/Challenge/sorisori01/filterAge/solve.js +++ /dev/null @@ -1,23 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes - -const result = inputArray.filter(e => e.age > 30 && e.age < 50); - -console.log(result); \ No newline at end of file diff --git a/Challenge/sorisori01/filterOdd/solve.js b/Challenge/sorisori01/filterOdd/solve.js deleted file mode 100644 index b41a98be..00000000 --- a/Challenge/sorisori01/filterOdd/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - - -const result = inputArray.filter(e => e % 2 === 1); -console.log(result); - diff --git a/Challenge/sorisori01/findWord/README.md b/Challenge/sorisori01/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/sorisori01/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/sorisori01/findWord/solve.js b/Challenge/sorisori01/findWord/solve.js deleted file mode 100644 index 37a04651..00000000 --- a/Challenge/sorisori01/findWord/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; - -// write your codes -let res = false -const result = inputArray.find(e => { - if(e == '용가리') res = true -}) -console.log(res); \ No newline at end of file diff --git a/Challenge/sorisori01/forEachFilter/README.md b/Challenge/sorisori01/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/sorisori01/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/sorisori01/forEachFilter/solve.js b/Challenge/sorisori01/forEachFilter/solve.js deleted file mode 100644 index 6a9eaf6f..00000000 --- a/Challenge/sorisori01/forEachFilter/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = []; - inputArray.forEach(e => { - if(e >= 40) - result.push(e); - }) -console.log(result); \ No newline at end of file diff --git a/Challenge/sorisori01/forEachFilterIsNaN/README.md b/Challenge/sorisori01/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/sorisori01/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/sorisori01/forEachFilterIsNaN/solve.js b/Challenge/sorisori01/forEachFilterIsNaN/solve.js deleted file mode 100644 index 278876f8..00000000 --- a/Challenge/sorisori01/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes - -const result = []; - -inputArray.forEach(e => { - if(!isNaN(e)){ - result.push(e); - } -}) - -console.log(result); \ No newline at end of file diff --git a/Challenge/sorisori01/forEachReduce/README.md b/Challenge/sorisori01/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/sorisori01/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/sorisori01/forEachReduce/solve.js b/Challenge/sorisori01/forEachReduce/solve.js deleted file mode 100644 index 5b383a39..00000000 --- a/Challenge/sorisori01/forEachReduce/solve.js +++ /dev/null @@ -1,16 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let sum = 0; - -inputArray.forEach(e => { sum += e}) -console.log(sum); - -const result = inputArray.reduce((a,b) => { - console.log("a: ",a) - console.log("b: ",b) - console.log("a+b : ",a+b); - return a+b; - -}); -console.log("reduce : ",result); \ No newline at end of file diff --git a/Challenge/sorisori01/mapAddPercent/README.md b/Challenge/sorisori01/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/sorisori01/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/sorisori01/mapAddPercent/solve.js b/Challenge/sorisori01/mapAddPercent/solve.js deleted file mode 100644 index 4a5deb2c..00000000 --- a/Challenge/sorisori01/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.map(v => v+'%') -console.log(result); \ No newline at end of file diff --git a/Challenge/sorisori01/mapAppendOrder/README.md b/Challenge/sorisori01/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/sorisori01/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/sorisori01/mapAppendOrder/solve.js b/Challenge/sorisori01/mapAppendOrder/solve.js deleted file mode 100644 index e3860b83..00000000 --- a/Challenge/sorisori01/mapAppendOrder/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes -let result = []; -let i; -inputArray.map((i,e) => { - result[e] = {'name':i,'order':e} -}); -console.log(result); diff --git a/Challenge/sorisori01/sortByPrice/README.md b/Challenge/sorisori01/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/sorisori01/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/sorisori01/sortByPrice/solve.js b/Challenge/sorisori01/sortByPrice/solve.js deleted file mode 100644 index 6c6c523c..00000000 --- a/Challenge/sorisori01/sortByPrice/solve.js +++ /dev/null @@ -1,31 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - } -]; - -// write your codes - -const result = inputArray.sort( function(a,b){ - // 오름차순 - // return a.price < b.price ? -1 : a.price > b.price ? 1 : 0; - return a["price"] - b["price"]; - - // 내림차순 - //return b["price"] - a["price"] -}) -console.log(result); - diff --git a/Challenge/star6973/everyArray/README.md b/Challenge/star6973/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/star6973/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/star6973/everyArray/solve.js b/Challenge/star6973/everyArray/solve.js deleted file mode 100644 index b11cf093..00000000 --- a/Challenge/star6973/everyArray/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const isEven = item => item % 2 === 0; -function solution(inputArray) { - return inputArray.every(isEven); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/everyArray/solve.test.js b/Challenge/star6973/everyArray/solve.test.js deleted file mode 100644 index b03e4791..00000000 --- a/Challenge/star6973/everyArray/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [2, 4, 6, 8, 10], - answer: true, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: false, -}; - -describe('everyArray', () => { - test('모두 짝수면 true여야 한다.', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('홀수가 있으면 false여야 한다.', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/star6973/expDivOdd/README.md b/Challenge/star6973/expDivOdd/README.md deleted file mode 100644 index c07ab10b..00000000 --- a/Challenge/star6973/expDivOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. diff --git a/Challenge/star6973/expDivOdd/solve.js b/Challenge/star6973/expDivOdd/solve.js deleted file mode 100644 index 1ca77098..00000000 --- a/Challenge/star6973/expDivOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -function solution(inputArray) { - const answer = inputArray.filter(item => (Math.pow(item, 2) % 3) % 2 !== 0).map(item => Math.pow(item, 2)); - return answer.reduce((acc, curr) => { return acc + curr }); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/expDivOdd/solve.test.js b/Challenge/star6973/expDivOdd/solve.test.js deleted file mode 100644 index ca37fcc3..00000000 --- a/Challenge/star6973/expDivOdd/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 7, 3, 4, 6], - answer: 66, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: 168, -}; - -describe('everyArray', () => { - test('1, 7, 3, 4, 6', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('2, 3, 6, 8, 10', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/Challenge/star6973/figureSkating/README.md b/Challenge/star6973/figureSkating/README.md deleted file mode 100644 index 54b85fbd..00000000 --- a/Challenge/star6973/figureSkating/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -- 점수가 가장 높은 사람이 1등이다. -- 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -- 기술점수(TES)는 기본점수 \* 수행점수(GOE)를 합산해 도출한다. -- 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -- 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -- 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. diff --git a/Challenge/star6973/figureSkating/solve.js b/Challenge/star6973/figureSkating/solve.js deleted file mode 100644 index 7c4f6dfa..00000000 --- a/Challenge/star6973/figureSkating/solve.js +++ /dev/null @@ -1,55 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -// write your codes - -function solution(inputArray) { - // 필수 과제를 수행하지 못할 시 실격 - let figureScore = []; - inputArray.forEach(person => { - const { jump, spin, step } = person.goe; - if (jump.length >= 3 && spin.length >= 3 && step.length >= 1) { - figureScore.push(person); - } - }) - - let answer = []; - figureScore.forEach(person => { - const { jump, spin, step } = person.goe; - - // 점프와 스핀이 4번 이상 수행되면 가장 잘한 3개만 선택 - const sortJump = jump.sort((a, b) => b - a).slice(0, 3); - const sortSpin = spin.sort((a, b) => b - a).slice(0, 3); - - // 스텝이 2번 이상 수행되면 가장 잘한 1개만 선택 - const sortStep = step.sort((a, b) => b - a).slice(0, 1); - - const jumpScore = baseScore.jump * sortJump.reduce((acc, curr) => acc + curr); - const spinScore = baseScore.spin * sortSpin.reduce((acc, curr) => acc + curr); - const stepScore = baseScore.step * sortStep.reduce((acc, curr) => acc + curr); - - const result = (jumpScore + spinScore + stepScore) + person.pcs - person.penalty; - - answer.push({ - "name": person.name, - "score": result - }) - }) - - // 점수가 높은 순서 - answer.sort((a, b) => b.score - a.score); - - return answer; -} - -exports.solution = solution; diff --git a/Challenge/star6973/figureSkating/solve.test.js b/Challenge/star6973/figureSkating/solve.test.js deleted file mode 100644 index 7bceadf1..00000000 --- a/Challenge/star6973/figureSkating/solve.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, - ], - answer: [ - { name: '김연아', score: 1055 }, - { name: '아사다 마오', score: 939 }, - ], -}; - -describe('everyArray', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/filterAge/README.md b/Challenge/star6973/filterAge/README.md deleted file mode 100644 index 873a15c1..00000000 --- a/Challenge/star6973/filterAge/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 diff --git a/Challenge/star6973/filterAge/solve.js b/Challenge/star6973/filterAge/solve.js deleted file mode 100644 index 8d693b25..00000000 --- a/Challenge/star6973/filterAge/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter(item => item.age >= 30 && item.age < 50); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/filterAge/solve.test.js b/Challenge/star6973/filterAge/solve.test.js deleted file mode 100644 index b9081601..00000000 --- a/Challenge/star6973/filterAge/solve.test.js +++ /dev/null @@ -1,32 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, - ], - answer: [ - { name: '일미', age: 35 }, - { name: '이미', age: 45 }, - ], -}; - -describe('filterAge', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/filterDifference/README.md b/Challenge/star6973/filterDifference/README.md deleted file mode 100644 index 6a641761..00000000 --- a/Challenge/star6973/filterDifference/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 차집합을 출력하세요! 두 번째 배열의 차이도 포함하세요. \ No newline at end of file diff --git a/Challenge/star6973/filterDifference/solve.js b/Challenge/star6973/filterDifference/solve.js deleted file mode 100644 index fe27ed8f..00000000 --- a/Challenge/star6973/filterDifference/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -function solution(inputArray1, inputArray2) { - const difference = [ - ...inputArray1.filter(item => !inputArray2.includes(item)), - ...inputArray2.filter(item => !inputArray1.includes(item)) - ]; - return difference; -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/filterDifference/solve.test.js b/Challenge/star6973/filterDifference/solve.test.js deleted file mode 100644 index c3f87f79..00000000 --- a/Challenge/star6973/filterDifference/solve.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], - }, - answer: [1, 2, 6, 7], -}; - -describe('filterDifference', () => { - test('test1', () => { - expect(solution(test1.input.A, test1.input.B)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/filterIntersection/README.md b/Challenge/star6973/filterIntersection/README.md deleted file mode 100644 index d7c9ad39..00000000 --- a/Challenge/star6973/filterIntersection/README.md +++ /dev/null @@ -1,5 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! diff --git a/Challenge/star6973/filterIntersection/solve.js b/Challenge/star6973/filterIntersection/solve.js deleted file mode 100644 index 10f21fc6..00000000 --- a/Challenge/star6973/filterIntersection/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -function solution(inputArray1, inputArray2) { - return inputArray1.filter(item => inputArray2.includes(item)); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/filterIntersection/solve.test.js b/Challenge/star6973/filterIntersection/solve.test.js deleted file mode 100644 index 576cbc86..00000000 --- a/Challenge/star6973/filterIntersection/solve.test.js +++ /dev/null @@ -1,15 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: { - A: [1, 2, 3, 4, 5], - B: [3, 4, 5, 6, 7], - }, - answer: [3, 4, 5], -}; - -describe('filterIntersection', () => { - test('test1', () => { - expect(solution(test1.input.A, test1.input.B)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/filterOdd/README.md b/Challenge/star6973/filterOdd/README.md deleted file mode 100644 index cf9eda79..00000000 --- a/Challenge/star6973/filterOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -홀수만 뽑아 배열로 만드세요 diff --git a/Challenge/star6973/filterOdd/solve.js b/Challenge/star6973/filterOdd/solve.js deleted file mode 100644 index 85982591..00000000 --- a/Challenge/star6973/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter(item => item % 2 !== 0); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/filterOdd/solve.test.js b/Challenge/star6973/filterOdd/solve.test.js deleted file mode 100644 index 8cfd7f5a..00000000 --- a/Challenge/star6973/filterOdd/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [4, 2, 5, 1, 3], - answer: [5, 1, 3], -}; - -const test2 = { - input: [4, 2, 6, 8, 50, 16], - answer: [], -}; - -const test3 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], - answer: [1, 3, 5, 7, 9, 11], -}; - -describe('filterOdd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/star6973/findWord/README.md b/Challenge/star6973/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/star6973/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/star6973/findWord/solve.js b/Challenge/star6973/findWord/solve.js deleted file mode 100644 index 6368e6cd..00000000 --- a/Challenge/star6973/findWord/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.includes("용가리"); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/findWord/solve.test.js b/Challenge/star6973/findWord/solve.test.js deleted file mode 100644 index 804114f6..00000000 --- a/Challenge/star6973/findWord/solve.test.js +++ /dev/null @@ -1,26 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['잠', '자', '고', '싶', '다', '용가리'], - answer: true, -}; -const test2 = { - input: ['맛있는', '용가리치킨'], - answer: false, -}; -const test3 = { - input: ['고질라', '용가리 ', '울트라맨'], - answer: false, -}; - -describe('findWord', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/star6973/forEachFilter/README.md b/Challenge/star6973/forEachFilter/README.md deleted file mode 100644 index 6dcbc7c2..00000000 --- a/Challenge/star6973/forEachFilter/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. diff --git a/Challenge/star6973/forEachFilter/solve.js b/Challenge/star6973/forEachFilter/solve.js deleted file mode 100644 index 2c1de411..00000000 --- a/Challenge/star6973/forEachFilter/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter(item => item >= 40); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/forEachFilter/solve.test.js b/Challenge/star6973/forEachFilter/solve.test.js deleted file mode 100644 index 3d73b25c..00000000 --- a/Challenge/star6973/forEachFilter/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: [100, 40], -}; - -describe('forEachFilter', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/forEachFilterIsNaN/README.md b/Challenge/star6973/forEachFilterIsNaN/README.md deleted file mode 100644 index 570c030e..00000000 --- a/Challenge/star6973/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. diff --git a/Challenge/star6973/forEachFilterIsNaN/solve.js b/Challenge/star6973/forEachFilterIsNaN/solve.js deleted file mode 100644 index 10bea9be..00000000 --- a/Challenge/star6973/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.filter(item => (!isNaN(item) && typeof(item) === "number")); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/forEachFilterIsNaN/solve.test.js b/Challenge/star6973/forEachFilterIsNaN/solve.test.js deleted file mode 100644 index d6e118bb..00000000 --- a/Challenge/star6973/forEachFilterIsNaN/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 40, '라매', '개발자', 51.5, 'a', 88], - answer: [1, 40, 51.5, 88], -}; - -const test2 = { - input: [1, 2, 3, '4', 5, '6'], - answer: [1, 2, 3, 5], -}; - -const test3 = { - input: [-3, -2, -1, 0, 1, 2, 3], - answer: [-3, -2, -1, 0, 1, 2, 3], -}; - -describe('forEachFilterIsNaN', () => { - test('test1: 숫자,문자 판별', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2: 문자로된 숫자 판별', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3: 음수 양수 포함', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); \ No newline at end of file diff --git a/Challenge/star6973/forEachMap/README.md b/Challenge/star6973/forEachMap/README.md deleted file mode 100644 index 1e8e03c8..00000000 --- a/Challenge/star6973/forEachMap/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 diff --git a/Challenge/star6973/forEachMap/solve.js b/Challenge/star6973/forEachMap/solve.js deleted file mode 100644 index 54807012..00000000 --- a/Challenge/star6973/forEachMap/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map(item => `${item}%`); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/forEachMap/solve.test.js b/Challenge/star6973/forEachMap/solve.test.js deleted file mode 100644 index de4868c6..00000000 --- a/Challenge/star6973/forEachMap/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: ['100%', '10%', '20%', '40%'], -}; - -describe('forEachMap', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/forEachReduce/README.md b/Challenge/star6973/forEachReduce/README.md deleted file mode 100644 index a984df2d..00000000 --- a/Challenge/star6973/forEachReduce/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 diff --git a/Challenge/star6973/forEachReduce/solve.js b/Challenge/star6973/forEachReduce/solve.js deleted file mode 100644 index ec506e05..00000000 --- a/Challenge/star6973/forEachReduce/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((arr, curr) => arr + curr); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/forEachReduce/solve.test.js b/Challenge/star6973/forEachReduce/solve.test.js deleted file mode 100644 index 397e4b50..00000000 --- a/Challenge/star6973/forEachReduce/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: 170, -}; - -const test2 = { - input: [120, -20, -30, 0, 15], - answer: 85, -}; - -const test3 = { - input: [-10, -20, -30], - answer: -60, -}; - -describe('forEachReduce', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2: 음수가 포함된 계산', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3: 음수만 존재하는 계산', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/star6973/mapAddPercent/README.md b/Challenge/star6973/mapAddPercent/README.md deleted file mode 100644 index 75e73042..00000000 --- a/Challenge/star6973/mapAddPercent/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 diff --git a/Challenge/star6973/mapAddPercent/solve.js b/Challenge/star6973/mapAddPercent/solve.js deleted file mode 100644 index d89d1492..00000000 --- a/Challenge/star6973/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map(item => `${item}%`) -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/mapAddPercent/solve.test.js b/Challenge/star6973/mapAddPercent/solve.test.js deleted file mode 100644 index dac1b3cc..00000000 --- a/Challenge/star6973/mapAddPercent/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [100, 10, 20, 40], - answer: ['100%', '10%', '20%', '40%'], -}; - -describe('mapAddPercent', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/mapAppendOrder/README.md b/Challenge/star6973/mapAppendOrder/README.md deleted file mode 100644 index 1435623a..00000000 --- a/Challenge/star6973/mapAppendOrder/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 diff --git a/Challenge/star6973/mapAppendOrder/solve.js b/Challenge/star6973/mapAppendOrder/solve.js deleted file mode 100644 index 870932d5..00000000 --- a/Challenge/star6973/mapAppendOrder/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.map((item, idx) => { - return { - "name": item, - "order": idx+1 - } - }) -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/mapAppendOrder/solve.test.js b/Challenge/star6973/mapAppendOrder/solve.test.js deleted file mode 100644 index e08db10c..00000000 --- a/Challenge/star6973/mapAppendOrder/solve.test.js +++ /dev/null @@ -1,16 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: ['홍길동', '둘리', '루피'], - answer: [ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 }, - ], -}; - -describe('mapAppendOrder', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/recommendAd/README.md b/Challenge/star6973/recommendAd/README.md deleted file mode 100644 index 132e8800..00000000 --- a/Challenge/star6973/recommendAd/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# 문제제목 - -사용자가 안 본 광고는? - -## 설명 - -유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. - -[2020년 유튜브 인기 광고](https://www.thinkwithgoogle.com/intl/ko-kr/marketing-strategies/video/%EB%8C%80%ED%95%9C%EB%AF%BC%EA%B5%AD-youtube-%EC%9D%B8%EA%B8%B0-%EA%B4%91%EA%B3%A0%EC%98%81%EC%83%81-2020%EB%85%84-%EC%97%B0%EB%A7%90%EA%B2%B0%EC%82%B0/)는 총 열 편으로, 사용자의 일주일간 광고 시청 이력을 통해 해당 사용자가 일주일 동안 안 본 광고를 그 다음주에 노출함으로써 광고들이 사용자에게 골고루 노출되길 원합니다. - -유저가 매일 유튜브에 접속하여 하루 한 편 이상의 광고를 보았다고 가정할 때, 이 유저가 안 본 광고는 무엇인지 출력해주세요. - -## Expected Output - -[ '동원F&B' ] diff --git a/Challenge/star6973/recommendAd/solve.js b/Challenge/star6973/recommendAd/solve.js deleted file mode 100644 index 41b3ad42..00000000 --- a/Challenge/star6973/recommendAd/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const userHistory = [ - { date: '2020-11-03', watched: ['KT', 'BBQ'] }, - { date: '2020-11-04', watched: ['정관장', 'KT', '딱좋은데이'] }, - { date: '2020-11-05', watched: ['그랑사가', '농심'] }, - { date: '2020-11-06', watched: ['BBQ'] }, - { date: '2020-11-07', watched: ['쌍용자동차', 'BBQ', 'KT'] }, - { date: '2020-11-08', watched: ['켈로그코리아', '빙그레'] }, - { date: '2020-11-09', watched: ['KT', '그랑사가', '빙그레'] }, -]; - -// write your codes -function solution(inputArray) { - let watchList = []; - userHistory.forEach(item => watchList.push(...item.watched)); - - // 배열의 중복 제거 - watchList = [...new Set(watchList)]; - - return inputArray.filter(item => !watchList.includes(item)); -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/recommendAd/solve.test.js b/Challenge/star6973/recommendAd/solve.test.js deleted file mode 100644 index 8a0f6464..00000000 --- a/Challenge/star6973/recommendAd/solve.test.js +++ /dev/null @@ -1,23 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - '동원F&B', - '정관장', - 'KT', - 'BBQ', - '그랑사가', - '농심', - '딱좋은데이', - '빙그레', - '쌍용자동차', - '켈로그코리아', - ], - answer: ['동원F&B'], -}; - -describe('recommendAd', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/reduceMaxValueNIndex/README.md b/Challenge/star6973/reduceMaxValueNIndex/README.md deleted file mode 100644 index 965bdec6..00000000 --- a/Challenge/star6973/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 diff --git a/Challenge/star6973/reduceMaxValueNIndex/solve.js b/Challenge/star6973/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 6bf87f07..00000000 --- a/Challenge/star6973/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc, cur, idx) => { - return (acc.maxValue >= cur) ? acc : { maxValue: cur, idx: idx }; - }, { maxValue: Number.NEGATIVE_INFINITY, idx: -1 }) -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/reduceMaxValueNIndex/solve.test.js b/Challenge/star6973/reduceMaxValueNIndex/solve.test.js deleted file mode 100644 index 0daef5b8..00000000 --- a/Challenge/star6973/reduceMaxValueNIndex/solve.test.js +++ /dev/null @@ -1,28 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [3, 29, 38, 12, 57, 74, 40, 85, 61], - answer: { maxValue: 85, idx: 7 }, -}; - -const test2 = { - input: [-24, -2, -13, -49, -999999, -17], - answer: { maxValue: -2, idx: 1 }, -}; -//최댓값이 중복일 때에는 먼저 나온 최댓값의 인덱스를 유지하도록 설정하였습니다. -const test3 = { - input: [2, -20, 21, -874, 99, -16, -29, 99], - answer: { maxValue: 99, idx: 4 }, -}; - -describe('reduceMaxValueNIndex', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - test('test2 : 음수 테스트', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); - test('test3 : 중복된 최대값 테스트', () => { - expect(solution(test3.input)).toEqual(test3.answer); - }); -}); diff --git a/Challenge/star6973/reduceNameNickname/README.md b/Challenge/star6973/reduceNameNickname/README.md deleted file mode 100644 index b6920e05..00000000 --- a/Challenge/star6973/reduceNameNickname/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 diff --git a/Challenge/star6973/reduceNameNickname/solve.js b/Challenge/star6973/reduceNameNickname/solve.js deleted file mode 100644 index e6cbab2c..00000000 --- a/Challenge/star6973/reduceNameNickname/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc, cur) => { - return { - ...acc, - [cur.nickname]: cur.name - } - }, {}) -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/reduceNameNickname/solve.test.js b/Challenge/star6973/reduceNameNickname/solve.test.js deleted file mode 100644 index 67b74529..00000000 --- a/Challenge/star6973/reduceNameNickname/solve.test.js +++ /dev/null @@ -1,25 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, - ], - answer: { hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' }, -}; - -describe('reduceNameNickname', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/reduceSum/README.md b/Challenge/star6973/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/star6973/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/star6973/reduceSum/solve.js b/Challenge/star6973/reduceSum/solve.js deleted file mode 100644 index 49beeed0..00000000 --- a/Challenge/star6973/reduceSum/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.reduce((acc, cur) => { return acc + cur }) -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/reduceSum/solve.test.js b/Challenge/star6973/reduceSum/solve.test.js deleted file mode 100644 index 046c40cb..00000000 --- a/Challenge/star6973/reduceSum/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [10, 3, 20, 5, 8, 60], - answer: 106, -}; - -describe('reduceSum', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/sortByPrice/README.md b/Challenge/star6973/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/star6973/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/star6973/sortByPrice/solve.js b/Challenge/star6973/sortByPrice/solve.js deleted file mode 100644 index a50e31b2..00000000 --- a/Challenge/star6973/sortByPrice/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort((a, b) => a.price - b.price) -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/sortByPrice/solve.test.js b/Challenge/star6973/sortByPrice/solve.test.js deleted file mode 100644 index 3d6a3431..00000000 --- a/Challenge/star6973/sortByPrice/solve.test.js +++ /dev/null @@ -1,34 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, - ], - answer: [ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 }, - ], -}; - -describe('sortByPrice', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/sortByPriceAndQuantity/README.md b/Challenge/star6973/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/star6973/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/star6973/sortByPriceAndQuantity/solve.js b/Challenge/star6973/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 4f9c775f..00000000 --- a/Challenge/star6973/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort((a, b) => { - if (a.price === b.price) { - return a.quantity - b.quantity - } - return a.price - b.price - }) - - // return inputArray.sort((a, b) => a.price - b.price || a.quantity - b.quantity) -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/sortByPriceAndQuantity/solve.test.js b/Challenge/star6973/sortByPriceAndQuantity/solve.test.js deleted file mode 100644 index 424f42b7..00000000 --- a/Challenge/star6973/sortByPriceAndQuantity/solve.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, - ], - answer: [ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 }, - ], -}; - -describe('sortByPriceAndQuantity', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/star6973/spreadOperatorMaxValue/README.md b/Challenge/star6973/spreadOperatorMaxValue/README.md deleted file mode 100644 index 164b68a1..00000000 --- a/Challenge/star6973/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 diff --git a/Challenge/star6973/spreadOperatorMaxValue/solve.js b/Challenge/star6973/spreadOperatorMaxValue/solve.js deleted file mode 100644 index f9215ed0..00000000 --- a/Challenge/star6973/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return `max : ${Math.max(...inputArray)}, min : ${Math.min(...inputArray)}` -} - -exports.solution = solution; \ No newline at end of file diff --git a/Challenge/star6973/spreadOperatorMaxValue/solve.test.js b/Challenge/star6973/spreadOperatorMaxValue/solve.test.js deleted file mode 100644 index 26f2abf9..00000000 --- a/Challenge/star6973/spreadOperatorMaxValue/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - answer: 'max : 10, min : 1', -}; - -describe('spreadOperatorMaxValue', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/amunre21/everyArray/README.md b/Challenge/sy1014/everyArray/README.md similarity index 100% rename from Challenge/amunre21/everyArray/README.md rename to Challenge/sy1014/everyArray/README.md diff --git a/Challenge/sy1014/everyArray/solve.js b/Challenge/sy1014/everyArray/solve.js new file mode 100644 index 00000000..dedcc92f --- /dev/null +++ b/Challenge/sy1014/everyArray/solve.js @@ -0,0 +1,11 @@ +function solution(inputArray) { + +return inputArray.every(el => el % 2 === 0) + +} + +exports.solution = solution; + +/* Array.prototype.every() : every메소드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트한다. boolean 값을 반환한다. +참고로 빈 배열에서 호출하면 무조건 true를 반환한다. +*/ \ No newline at end of file diff --git a/Challenge/cellenar26/everyArray/solve.test.js b/Challenge/sy1014/everyArray/solve.test.js similarity index 100% rename from Challenge/cellenar26/everyArray/solve.test.js rename to Challenge/sy1014/everyArray/solve.test.js diff --git a/Challenge/thdwlsgus0/everyArray/README.md b/Challenge/thdwlsgus0/everyArray/README.md deleted file mode 100644 index 442558f6..00000000 --- a/Challenge/thdwlsgus0/everyArray/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 - -## Expected Output - -true \ No newline at end of file diff --git a/Challenge/thdwlsgus0/everyArray/solve.js b/Challenge/thdwlsgus0/everyArray/solve.js deleted file mode 100644 index fd404622..00000000 --- a/Challenge/thdwlsgus0/everyArray/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [2, 4, 6, 8, 10]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.every(num=>num%2===0); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/expDivOdd/README.md b/Challenge/thdwlsgus0/expDivOdd/README.md deleted file mode 100644 index 6749b510..00000000 --- a/Challenge/thdwlsgus0/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -// 제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -59 diff --git a/Challenge/thdwlsgus0/expDivOdd/solve.js b/Challenge/thdwlsgus0/expDivOdd/solve.js deleted file mode 100644 index 1f223b0f..00000000 --- a/Challenge/thdwlsgus0/expDivOdd/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [ 1, 7, 3, 4, 6 ]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.map((v)=> Math.pow(v,2)) - .reduce((acc,cur)=>{ - if(cur%3===1)return acc+cur; - else return acc; - },0); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/figureSkating/README.md b/Challenge/thdwlsgus0/figureSkating/README.md deleted file mode 100644 index 54b85fbd..00000000 --- a/Challenge/thdwlsgus0/figureSkating/README.md +++ /dev/null @@ -1,35 +0,0 @@ -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -- 점수가 가장 높은 사람이 1등이다. -- 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -- 기술점수(TES)는 기본점수 \* 수행점수(GOE)를 합산해 도출한다. -- 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -- 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -- 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. diff --git a/Challenge/thdwlsgus0/figureSkating/solve.js b/Challenge/thdwlsgus0/figureSkating/solve.js deleted file mode 100644 index 958dfb8f..00000000 --- a/Challenge/thdwlsgus0/figureSkating/solve.js +++ /dev/null @@ -1,102 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: "김연아", - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: "피겨의 신", - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: "아사다 마오", - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -]; - -// write your codes - -function solution(inputArray) { - - const baseComp = (array) => { - if(array.goe.jump.length >= baseAssignment.jump && - array.goe.spin.length >= baseAssignment.spin && - array.goe.step.length >= baseAssignment.step) - return array; - } - - const sumScore = (array) => { - const sum = array.reduce((acc, cur)=>{ - return acc+cur; - },0); - - return sum; - } - - const getScore = (player, n) => { - - const jumpScore = baseScore.jump * sumScore(sortScore(player.goe.jump, n)); - const spinScore = baseScore.spin * sumScore(sortScore(player.goe.spin, n)); - const stepScore = baseScore.step * sumScore(sortScore(player.goe.step, n)); - - const totalScore = jumpScore + spinScore + stepScore + player.pcs - player.penalty; - - return totalScore; - } - - const sortScore = (actionArray, n) => { - if(actionArray.length>=n){ - return actionArray.sort((a,b)=>b-a) - .slice(0, 3); - } - else return actionArray.sort((a,b)=> a-b); - } - - const getObject = (currentPlayer) => { - const obj = {}; - obj['name'] = currentPlayer.name; - obj['score'] = getScore(currentPlayer, 4); - return obj; - } - - const answer = inputArray.filter(item=>baseComp(item)) - .reduce((player, currentPlayer)=>{ - player.push(getObject(currentPlayer)); - return player; - },[]); - - return answer; -} - -console.log(solution(inputArray)); -exports.solution = solution; diff --git a/Challenge/thdwlsgus0/figureSkating/solve.test.js b/Challenge/thdwlsgus0/figureSkating/solve.test.js deleted file mode 100644 index 7bceadf1..00000000 --- a/Challenge/thdwlsgus0/figureSkating/solve.test.js +++ /dev/null @@ -1,46 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '김연아', - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: '피겨의 신', - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: '아사다 마오', - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, - ], - answer: [ - { name: '김연아', score: 1055 }, - { name: '아사다 마오', score: 939 }, - ], -}; - -describe('everyArray', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/thdwlsgus0/filterAge/README.md b/Challenge/thdwlsgus0/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/thdwlsgus0/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/thdwlsgus0/filterAge/solve.js b/Challenge/thdwlsgus0/filterAge/solve.js deleted file mode 100644 index 074c1b35..00000000 --- a/Challenge/thdwlsgus0/filterAge/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -] -// write your codes - -const solution = (inputArray) => { - return inputArray.filter((v)=> v.age>=30 && v.age<50); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/filterIntersection/README.md b/Challenge/thdwlsgus0/filterIntersection/README.md deleted file mode 100644 index 56c8d04a..00000000 --- a/Challenge/thdwlsgus0/filterIntersection/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -두 배열의 교집합을 출력하세요! - -## Expected Output - -[3, 4, 5] \ No newline at end of file diff --git a/Challenge/thdwlsgus0/filterIntersection/solve.js b/Challenge/thdwlsgus0/filterIntersection/solve.js deleted file mode 100644 index 6f0e412c..00000000 --- a/Challenge/thdwlsgus0/filterIntersection/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const A = [1, 2, 3, 4, 5]; -const B = [3, 4, 5, 6, 7]; -// write your codes - -const solution = (A,B)=>{ - return A.filter((v)=>B.includes(v)); -} - -console.log(solution(A,B)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/filterOdd/README.md b/Challenge/thdwlsgus0/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/thdwlsgus0/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/thdwlsgus0/filterOdd/solve.js b/Challenge/thdwlsgus0/filterOdd/solve.js deleted file mode 100644 index faa9ef6d..00000000 --- a/Challenge/thdwlsgus0/filterOdd/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.filter(v=> v%2===1); -} - -console.log(solution(inputArray)); - diff --git a/Challenge/thdwlsgus0/findWord/README.md b/Challenge/thdwlsgus0/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/thdwlsgus0/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/thdwlsgus0/findWord/solve.js b/Challenge/thdwlsgus0/findWord/solve.js deleted file mode 100644 index 66219450..00000000 --- a/Challenge/thdwlsgus0/findWord/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; - -// write your codes - -const solution = (inputArray) => { - return inputArray.includes('용가리'); -} \ No newline at end of file diff --git a/Challenge/thdwlsgus0/forEachFilter/README.md b/Challenge/thdwlsgus0/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/thdwlsgus0/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/thdwlsgus0/forEachFilter/solve.js b/Challenge/thdwlsgus0/forEachFilter/solve.js deleted file mode 100644 index 403c6979..00000000 --- a/Challenge/thdwlsgus0/forEachFilter/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.filter(v => v>=40); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/forEachFilterIsNaN/README.md b/Challenge/thdwlsgus0/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/thdwlsgus0/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/thdwlsgus0/forEachFilterIsNaN/solve.js b/Challenge/thdwlsgus0/forEachFilterIsNaN/solve.js deleted file mode 100644 index ac326af5..00000000 --- a/Challenge/thdwlsgus0/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [ 1, 40, "라매", "개발자", 51.5, 'a', 88 ]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.filter(v=> !isNaN(v)); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/forEachMap/README.md b/Challenge/thdwlsgus0/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/thdwlsgus0/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/thdwlsgus0/forEachMap/solve.js b/Challenge/thdwlsgus0/forEachMap/solve.js deleted file mode 100644 index 41ab6906..00000000 --- a/Challenge/thdwlsgus0/forEachMap/solve.js +++ /dev/null @@ -1,13 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const solution = (inputArray) => { - const output = []; - inputArray.forEach((v)=>{ - output.push(v+'%'); - }); - return output; -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/forEachReduce/README.md b/Challenge/thdwlsgus0/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/thdwlsgus0/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/thdwlsgus0/forEachReduce/solve.js b/Challenge/thdwlsgus0/forEachReduce/solve.js deleted file mode 100644 index ce2cec85..00000000 --- a/Challenge/thdwlsgus0/forEachReduce/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.reduce((acc, cur)=> { - return acc+cur; - }) -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/mapAddPercent/README.md b/Challenge/thdwlsgus0/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/thdwlsgus0/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/thdwlsgus0/mapAddPercent/solve.js b/Challenge/thdwlsgus0/mapAddPercent/solve.js deleted file mode 100644 index ef70649c..00000000 --- a/Challenge/thdwlsgus0/mapAddPercent/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.map((v)=>{ - return v+'%'; - }) -} -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/mapAppendOrder/README.md b/Challenge/thdwlsgus0/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/thdwlsgus0/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/thdwlsgus0/mapAppendOrder/solve.js b/Challenge/thdwlsgus0/mapAppendOrder/solve.js deleted file mode 100644 index c8a21846..00000000 --- a/Challenge/thdwlsgus0/mapAppendOrder/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes - -const solution = (inputArray) => { - return inputArray.map((name,index)=>({name, order: index+1})) -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/reduceMaxValueNIndex/README.md b/Challenge/thdwlsgus0/reduceMaxValueNIndex/README.md deleted file mode 100644 index 02a22b52..00000000 --- a/Challenge/thdwlsgus0/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/thdwlsgus0/reduceMaxValueNIndex/solve.js b/Challenge/thdwlsgus0/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 1a99c0d5..00000000 --- a/Challenge/thdwlsgus0/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,17 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.reduce((acc ,cur, index)=> { - if(acc?.maxValue < cur){ - return { - maxValue: cur, - idx:index, - } - } - return acc; - },{maxValue:-Infinity, idx:-1}); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/reduceNameNickname/README.md b/Challenge/thdwlsgus0/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/thdwlsgus0/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/thdwlsgus0/reduceNameNickname/solve.js b/Challenge/thdwlsgus0/reduceNameNickname/solve.js deleted file mode 100644 index 083ce3e2..00000000 --- a/Challenge/thdwlsgus0/reduceNameNickname/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '홍길동', - nickname: 'hong', - }, - { - name: '둘리', - nickname: '2li', - }, - { - name: '오스트랄로피테쿠스', - nickname: '1Cin', - }, -]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.reduce((acc, cur, index)=>{ - acc[cur.nickname] = cur.name; - return acc; - },{}); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/reduceSum/README.md b/Challenge/thdwlsgus0/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/thdwlsgus0/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/thdwlsgus0/reduceSum/solve.js b/Challenge/thdwlsgus0/reduceSum/solve.js deleted file mode 100644 index 98839167..00000000 --- a/Challenge/thdwlsgus0/reduceSum/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - - -const solution = (inputArray) => { - return inputArray.reduce((acc, cur, index) => { - return acc+cur; - }); -} - -console.log(solution(inputArray)); \ No newline at end of file diff --git a/Challenge/thdwlsgus0/sortByPrice/README.md b/Challenge/thdwlsgus0/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/thdwlsgus0/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/thdwlsgus0/sortByPrice/solve.js b/Challenge/thdwlsgus0/sortByPrice/solve.js deleted file mode 100644 index 6b9592fb..00000000 --- a/Challenge/thdwlsgus0/sortByPrice/solve.js +++ /dev/null @@ -1,27 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - } -]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.sort((a,b)=>{ - return a.price - b.price; - }) -} - diff --git a/Challenge/thdwlsgus0/sortByPriceAndQuantity/README.md b/Challenge/thdwlsgus0/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/thdwlsgus0/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/thdwlsgus0/sortByPriceAndQuantity/solve.js b/Challenge/thdwlsgus0/sortByPriceAndQuantity/solve.js deleted file mode 100644 index a29c573f..00000000 --- a/Challenge/thdwlsgus0/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,36 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - } -]; - -// write your codes - -const solution = (inputArray) => { - return inputArray.sort((a,b)=>{ - return a.price - b.price || a.quantity - b.quantity; - }) -} - diff --git a/Challenge/thdwlsgus0/spreadOperatorMaxValue/README.md b/Challenge/thdwlsgus0/spreadOperatorMaxValue/README.md deleted file mode 100644 index b4ffffdb..00000000 --- a/Challenge/thdwlsgus0/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,11 +0,0 @@ -# 문제제목 - -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 - - -## Expected Output - - -max : 10, min : 1 \ No newline at end of file diff --git a/Challenge/thdwlsgus0/spreadOperatorMaxValue/solve.js b/Challenge/thdwlsgus0/spreadOperatorMaxValue/solve.js deleted file mode 100644 index c81364b5..00000000 --- a/Challenge/thdwlsgus0/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [1,2,3,4,5,6,7,8,9,10]; - -// write your codes - -const solution = (inputArray) => { - console.log(`max : ${Math.max(...inputArray)}, min : ${Math.min(...inputArray)}`); -} - -solution(inputArray); \ No newline at end of file diff --git a/Challenge/uhj1993/expDivOdd/README.md b/Challenge/uhj1993/expDivOdd/README.md deleted file mode 100644 index ca68f81d..00000000 --- a/Challenge/uhj1993/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -66 diff --git a/Challenge/uhj1993/expDivOdd/solve.js b/Challenge/uhj1993/expDivOdd/solve.js deleted file mode 100644 index 97e38bed..00000000 --- a/Challenge/uhj1993/expDivOdd/solve.js +++ /dev/null @@ -1,19 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes - -const result = inputArray - .map((item) => { - return item * item; - }) - .filter((item) => { - if (item % 3 === 1) { - return true; - } - }) - .reduce((a, b) => a + b); - -console.log(result); - -// 1. filter메소드의 return값은 boolean값이어야 한다. -// 2. 메소드체이닝 사용하기 diff --git a/Challenge/uhj1993/figureSkating/README.md b/Challenge/uhj1993/figureSkating/README.md deleted file mode 100644 index bfaa0743..00000000 --- a/Challenge/uhj1993/figureSkating/README.md +++ /dev/null @@ -1,41 +0,0 @@ -# 문제제목 - -## 설명 - -점수를 계산해서 점수가 높은 순으로 name과 score를 가진 객체의 배열을 출력하세요. -단 실격자는 출력하지 않습니다. - -### 피겨 점수 기준 - -피겨 점수는 ‘기술점수(TES)+예술점수(PCS)-감점’으로 구성된다. - -기술점수(TES·Total Element Score)는 기본점수에 수행점수(GOE·Grade Of Execution)를 합산해 도출한다. - -심판은 선수들이 점프와 스핀의 기술을 제대로 수행하는지 살핀다. 점프에선 회전수를 제대로 지켰는지, 에지를 제대로 사용했는지에 따라 ‘롱 에지’(잘못된 에지 사용)나 ‘다운그레이드’(난이도 하락), ‘어텐션’(주의) 등의 판정을 내린다. 스핀과 스텝시퀀스에 붙는 레벨(1~4)도 이들이 결정한다. - -9명의 심판은 선수들이 미리 제출한 연기 구성표를 기준으로 과제별 기본점수에서 가·감점을 한다. 이른바 ‘GOE’라 불리는 수행점수다. - -쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. - -예술점수(PCS·Total Program Component Score)는 프로그램의 완성도에 영향을 미치는 스케이팅 기술·동작의 연결·연기·안무·곡 해석 등 5가지를 평가한다. - -마지막으로 감점이 반영된다. 감점 항목이 발생할 때마다 1점씩 감점된다. - -원문보기: -http://news.khan.co.kr/kh_news/khan_art_view.html?art_id=201402172146545#csidx6329aebb6a02152bca884614a7f0544 - -### 판정 기준 - -* 점수가 가장 높은 사람이 1등이다. -* 점수는 기술점수(TES) + 예술점수(PCS) - 감점 으로 구성된다. -* 기술점수(TES)는 기본점수 * 수행점수(GOE)를 합산해 도출한다. -* 필수 수행과제를 수행하지 못했을 시 실격이다. - -### 필수 수행과제 - -* 쇼트프로그램은 점프 3개, 스핀 3개, 스텝 1개의 수행과제가 반드시 포함돼야 한다. -* 점프와 스핀을 4번 이상 수행했을 시 가장 잘한 3개를 기준으로 한다. - -## Expected Output - -[ { name: '김연아', score: 1055 }, { name: '아사다 마오', score: 999 } ] diff --git a/Challenge/uhj1993/figureSkating/solve.js b/Challenge/uhj1993/figureSkating/solve.js deleted file mode 100644 index 1c0a8a7b..00000000 --- a/Challenge/uhj1993/figureSkating/solve.js +++ /dev/null @@ -1,90 +0,0 @@ -// 기본 점수 -const baseScore = { - jump: 10, - spin: 20, - step: 15, -}; - -const baseAssignment = { - jump: 3, - spin: 3, - step: 1, -}; - -const inputArray = [ - { - name: "김연아", - goe: { - jump: [10, 9, 10], - spin: [10, 10, 10], - step: [9], - }, - pcs: 30, - penalty: 0, - }, - { - name: "피겨의 신", - goe: { - jump: [10000, 10000], - spin: [10000, 10000, 10000], - step: [10000], - }, - pcs: 100000, - penalty: 0, - }, - { - name: "아사다 마오", - goe: { - jump: [9, 6, 8, 9], - spin: [9, 9, 9], - step: [8], - }, - pcs: 29, - penalty: 10, - }, -]; - -// write your codes - -// 실격자 구분 -let dq = inputArray.filter((item) => { - if ( - item.goe.jump.length >= baseAssignment.jump && - item.goe.spin.length >= baseAssignment.spin && - item.goe.step.length >= baseAssignment.step - ) { - return true; - } -}); - -// 점수 계산 -let calculScore = dq.map((item) => { - const { name, goe, pcs, penalty } = item; - const { jump, spin, step } = goe; - - let jumpCount = jump.reduce((a, b) => { - return a + b * baseScore.jump; - }, 0); - - let spinCount = spin.reduce((a, b) => { - return a + b * baseScore.spin; - }, 0); - - let stepCount = step.reduce((a, b) => { - return a + b * baseScore.step; - }, 0); - - let tes = jumpCount + spinCount + stepCount; - - return { - name, - score: tes + pcs - penalty, - }; -}); - -// 순위 계산 -const result = calculScore.sort((a, b) => { - b.sort - a.sorts; -}); - -console.log(result); diff --git a/Challenge/uhj1993/filterAge/README.md b/Challenge/uhj1993/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/uhj1993/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/uhj1993/filterAge/solve.js b/Challenge/uhj1993/filterAge/solve.js deleted file mode 100644 index fb72bf3b..00000000 --- a/Challenge/uhj1993/filterAge/solve.js +++ /dev/null @@ -1,37 +0,0 @@ -const inputArray = [ - { - name: "영미", - age: 25, - }, - { - name: "일미", - age: 35, - }, - { - name: "이미", - age: 45, - }, - { - name: "삼미", - age: 55, - }, -]; -// write your codes - -// 1. else 조건이 없을 땐 undefined가 return되며 false와 같은 의미로 해석되기 때문에 좋은 방식은 아님 -// item.age >= 30 && item.age < 50 의 return값이 true or false 이므로 2번 방식으로 코딩하자 - -// const result = inputArray.filter((item) => { -// if (item.age >= 30 && item.age < 50) { -// return true; -// } else { -// return false; -// } -// }); - -// 2. 아예 조건을 return 해주자. -const result = inputArray.filter((item) => { - return item.age >= 30 && item.age < 50; -}); - -console.log(result); diff --git a/Challenge/uhj1993/filterOdd/README.md b/Challenge/uhj1993/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/uhj1993/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/uhj1993/filterOdd/solve.js b/Challenge/uhj1993/filterOdd/solve.js deleted file mode 100644 index 673aa81a..00000000 --- a/Challenge/uhj1993/filterOdd/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes - -const result = inputArray.filter((item) => { - return item % 2 === 1; -}); - -console.log(result); diff --git a/Challenge/uhj1993/findWord/README.md b/Challenge/uhj1993/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/uhj1993/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/uhj1993/findWord/solve.js b/Challenge/uhj1993/findWord/solve.js deleted file mode 100644 index 1ea57c7c..00000000 --- a/Challenge/uhj1993/findWord/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = ["잠", "자", "고", "싶", "다", "용가리"]; - -// write your codes - -const result = inputArray.includes("용가리"); - -console.log(result); diff --git a/Challenge/uhj1993/forEachFilter/README.md b/Challenge/uhj1993/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/uhj1993/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/uhj1993/forEachFilter/solve.js b/Challenge/uhj1993/forEachFilter/solve.js deleted file mode 100644 index 57872ef3..00000000 --- a/Challenge/uhj1993/forEachFilter/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.filter((item) => { - return item >= 40; -}); - -console.log(result); diff --git a/Challenge/uhj1993/forEachFilterIsNaN/README.md b/Challenge/uhj1993/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/uhj1993/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/uhj1993/forEachFilterIsNaN/solve.js b/Challenge/uhj1993/forEachFilterIsNaN/solve.js deleted file mode 100644 index fe118cf5..00000000 --- a/Challenge/uhj1993/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [1, 40, "라매", "개발자", 51.5, "a", 88]; - -// write your codes - -const result = inputArray.filter((item) => { - return typeof item === "number"; -}); - -console.log(result); diff --git a/Challenge/uhj1993/forEachMap/README.md b/Challenge/uhj1993/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/uhj1993/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/uhj1993/forEachMap/solve.js b/Challenge/uhj1993/forEachMap/solve.js deleted file mode 100644 index d9119368..00000000 --- a/Challenge/uhj1993/forEachMap/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const arr = []; -inputArray.forEach((item) => arr.push(item + "%")); -console.log(arr); diff --git a/Challenge/uhj1993/forEachReduce/README.md b/Challenge/uhj1993/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/uhj1993/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/uhj1993/forEachReduce/solve.js b/Challenge/uhj1993/forEachReduce/solve.js deleted file mode 100644 index 9606d579..00000000 --- a/Challenge/uhj1993/forEachReduce/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let result = 0; -inputArray.forEach((item) => (result += item)); - -console.log(result); diff --git a/Challenge/uhj1993/mapAddPercent/README.md b/Challenge/uhj1993/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/uhj1993/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/uhj1993/mapAddPercent/solve.js b/Challenge/uhj1993/mapAddPercent/solve.js deleted file mode 100644 index 61e43d77..00000000 --- a/Challenge/uhj1993/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes - -const result = inputArray.map((item) => item + "%"); -console.log(result); diff --git a/Challenge/uhj1993/mapAppendOrder/README.md b/Challenge/uhj1993/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/uhj1993/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/uhj1993/mapAppendOrder/solve.js b/Challenge/uhj1993/mapAppendOrder/solve.js deleted file mode 100644 index 6129f15a..00000000 --- a/Challenge/uhj1993/mapAppendOrder/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -const inputArray = ["홍길동", "둘리", "루피"]; - -// write your codes - -const result = inputArray.map((item, index) => { - return { - name: item, - order: index + 1, - }; -}); - -console.log(result); diff --git a/Challenge/uhj1993/reduceMaxValueNIndex/README.md b/Challenge/uhj1993/reduceMaxValueNIndex/README.md deleted file mode 100644 index 02a22b52..00000000 --- a/Challenge/uhj1993/reduceMaxValueNIndex/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 - -## Expected Output - -{ maxValue: 85, idx: 7 }. diff --git a/Challenge/uhj1993/reduceMaxValueNIndex/solve.js b/Challenge/uhj1993/reduceMaxValueNIndex/solve.js deleted file mode 100644 index 8151af6a..00000000 --- a/Challenge/uhj1993/reduceMaxValueNIndex/solve.js +++ /dev/null @@ -1,19 +0,0 @@ -const inputArray = [3, 29, 38, 12, 57, 74, 40, 85, 61]; - -// write your codes - -// 1번풀이 -const result1 = inputArray.reduce((acc, cur, idx) => { - if (acc.maxValue > cur) { - return acc; - } - return { maxValue: cur, idx }; -}); - -// 2번풀이 -const result2 = inputArray.reduce((acc, cur, idx) => { - return acc > cur ? { maxValue: acc, idx: idx - 1 } : cur; -}); - -console.log(result1); -console.log(result2); diff --git a/Challenge/uhj1993/reduceNameNickname/README.md b/Challenge/uhj1993/reduceNameNickname/README.md deleted file mode 100644 index aeaf5b31..00000000 --- a/Challenge/uhj1993/reduceNameNickname/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 - -## Expected Output - -{ hong: '홍길동', '2li': '둘리', '1Cin': '오스트랄로피테쿠스' } diff --git a/Challenge/uhj1993/reduceNameNickname/solve.js b/Challenge/uhj1993/reduceNameNickname/solve.js deleted file mode 100644 index 797b4c61..00000000 --- a/Challenge/uhj1993/reduceNameNickname/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: "홍길동", - nickname: "hong", - }, - { - name: "둘리", - nickname: "2li", - }, - { - name: "오스트랄로피테쿠스", - nickname: "1Cin", - }, -]; - -// write your codes - -const result = inputArray.reduce((acc, cur) => { - return { ...acc, [cur.nickname]: cur.name }; -}, []); - -console.log(result); diff --git a/Challenge/uhj1993/reduceSum/README.md b/Challenge/uhj1993/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/uhj1993/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/uhj1993/reduceSum/solve.js b/Challenge/uhj1993/reduceSum/solve.js deleted file mode 100644 index c428a7a6..00000000 --- a/Challenge/uhj1993/reduceSum/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes - -const result = inputArray.reduce((acc, cur) => acc + cur); - -console.log(result); diff --git a/Challenge/uhj1993/sortByPrice/README.md b/Challenge/uhj1993/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/uhj1993/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/uhj1993/sortByPrice/solve.js b/Challenge/uhj1993/sortByPrice/solve.js deleted file mode 100644 index dd5e6ac3..00000000 --- a/Challenge/uhj1993/sortByPrice/solve.js +++ /dev/null @@ -1,14 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort((a, b) => { - return a.price - b.price; - // if (a.price > b.price) { - // return 1; - // } else if (a.price < b.price) { - // return -1; - // } - // return 0; - }); -} - -exports.solution = solution; diff --git a/Challenge/uhj1993/sortByPrice/solve.test.js b/Challenge/uhj1993/sortByPrice/solve.test.js deleted file mode 100644 index 3d6a3431..00000000 --- a/Challenge/uhj1993/sortByPrice/solve.test.js +++ /dev/null @@ -1,34 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, - ], - answer: [ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 }, - ], -}; - -describe('sortByPrice', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/uhj1993/sortByPriceAndQuantity/README.md b/Challenge/uhj1993/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/uhj1993/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/uhj1993/sortByPriceAndQuantity/solve.js b/Challenge/uhj1993/sortByPriceAndQuantity/solve.js deleted file mode 100644 index 701d794b..00000000 --- a/Challenge/uhj1993/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,12 +0,0 @@ -// write your codes -function solution(inputArray) { - return inputArray.sort((a, b) => { - if (a.price != b.price) { - return a.price - b.price; - } else { - return a.quantity - b.quantity; - } - }); -} - -exports.solution = solution; diff --git a/Challenge/uhj1993/sortByPriceAndQuantity/solve.test.js b/Challenge/uhj1993/sortByPriceAndQuantity/solve.test.js deleted file mode 100644 index 424f42b7..00000000 --- a/Challenge/uhj1993/sortByPriceAndQuantity/solve.test.js +++ /dev/null @@ -1,44 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, - ], - answer: [ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 }, - ], -}; - -describe('sortByPriceAndQuantity', () => { - test('test1', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/uhj1993/spreadOperatorMaxValue/README.md b/Challenge/uhj1993/spreadOperatorMaxValue/README.md deleted file mode 100644 index 164b68a1..00000000 --- a/Challenge/uhj1993/spreadOperatorMaxValue/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 diff --git a/Challenge/uhj1993/spreadOperatorMaxValue/solve.js b/Challenge/uhj1993/spreadOperatorMaxValue/solve.js deleted file mode 100644 index 49c5cf13..00000000 --- a/Challenge/uhj1993/spreadOperatorMaxValue/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -// write your codes -function solution(inputArray) { - return `max : ${Math.max(...inputArray)}, min : ${Math.min(...inputArray)}`; -} - -exports.solution = solution; diff --git a/Challenge/uhj1993/spreadOperatorMaxValue/solve.test.js b/Challenge/uhj1993/spreadOperatorMaxValue/solve.test.js deleted file mode 100644 index 5358e190..00000000 --- a/Challenge/uhj1993/spreadOperatorMaxValue/solve.test.js +++ /dev/null @@ -1,12 +0,0 @@ -const { solution } = require("./solve"); - -const test1 = { - input: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10], - answer: "max : 10, min : 1", -}; - -describe("spreadOperatorMaxValue", () => { - test("test1", () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); -}); diff --git a/Challenge/vsakurav1/expDivOdd/README.md b/Challenge/vsakurav1/expDivOdd/README.md deleted file mode 100644 index ca68f81d..00000000 --- a/Challenge/vsakurav1/expDivOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것의 총 합을 구하세요. - -## Expected Output - -66 diff --git a/Challenge/vsakurav1/expDivOdd/solve.js b/Challenge/vsakurav1/expDivOdd/solve.js deleted file mode 100644 index 1e0f666b..00000000 --- a/Challenge/vsakurav1/expDivOdd/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [1, 7, 3, 4, 6]; - -// write your codes -const result = inputArray - .map(number => number * number) - .filter(item => item % 3 !== 0) - .reduce((acc, crr) => acc + crr, 0); - -console.log(result); diff --git a/Challenge/vsakurav1/filterAge/README.md b/Challenge/vsakurav1/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/vsakurav1/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/vsakurav1/filterAge/solve.js b/Challenge/vsakurav1/filterAge/solve.js deleted file mode 100644 index 30b19bc9..00000000 --- a/Challenge/vsakurav1/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -]; -// write your codes - -const result = inputArray.filter(item => item.age >= 30 && item.age < 50); -console.log(result); diff --git a/Challenge/vsakurav1/filterOdd/README.md b/Challenge/vsakurav1/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/vsakurav1/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/vsakurav1/filterOdd/solve.js b/Challenge/vsakurav1/filterOdd/solve.js deleted file mode 100644 index 546adf74..00000000 --- a/Challenge/vsakurav1/filterOdd/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes -const result = inputArray.filter(number => number % 2 !== 0); - -console.log(result); diff --git a/Challenge/vsakurav1/forEachFilter/README.md b/Challenge/vsakurav1/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/vsakurav1/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/vsakurav1/forEachFilter/solve.js b/Challenge/vsakurav1/forEachFilter/solve.js deleted file mode 100644 index df422265..00000000 --- a/Challenge/vsakurav1/forEachFilter/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -const result = []; -inputArray.forEach(number => { - if (number >= 40) { - result.push(number); - } -}); - -console.log(result); diff --git a/Challenge/vsakurav1/forEachFilterIsNaN/README.md b/Challenge/vsakurav1/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/vsakurav1/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/vsakurav1/forEachFilterIsNaN/solve.js b/Challenge/vsakurav1/forEachFilterIsNaN/solve.js deleted file mode 100644 index 6d7c3420..00000000 --- a/Challenge/vsakurav1/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [1, 40, '라매', '개발자', 51.5, 'a', 88]; - -// write your codes -const result = []; -inputArray.forEach(item => { - if (!isNaN(item)) { - result.push(item); - } -}); - -console.log(result); diff --git a/Challenge/vsakurav1/forEachMap/README.md b/Challenge/vsakurav1/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/vsakurav1/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/vsakurav1/forEachMap/solve.js b/Challenge/vsakurav1/forEachMap/solve.js deleted file mode 100644 index c455ce03..00000000 --- a/Challenge/vsakurav1/forEachMap/solve.js +++ /dev/null @@ -1,9 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -const result = []; -inputArray.forEach(item => { - result.push(item + '%'); -}); - -console.log(result); diff --git a/Challenge/vsakurav1/forEachReduce/README.md b/Challenge/vsakurav1/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/vsakurav1/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/vsakurav1/forEachReduce/solve.js b/Challenge/vsakurav1/forEachReduce/solve.js deleted file mode 100644 index 52775c00..00000000 --- a/Challenge/vsakurav1/forEachReduce/solve.js +++ /dev/null @@ -1,7 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let sum = 0; -inputArray.forEach(number => (sum += number)); - -console.log(sum); diff --git a/Challenge/vsakurav1/mapAddPercent/README.md b/Challenge/vsakurav1/mapAddPercent/README.md deleted file mode 100644 index 4156a2f9..00000000 --- a/Challenge/vsakurav1/mapAddPercent/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 - -## Expected Output - -['100%', '10%', '20%', '40%'] diff --git a/Challenge/vsakurav1/mapAddPercent/solve.js b/Challenge/vsakurav1/mapAddPercent/solve.js deleted file mode 100644 index f488d8b2..00000000 --- a/Challenge/vsakurav1/mapAddPercent/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -const result = inputArray.map(item => item + '%'); - -console.log(result); diff --git a/Challenge/vsakurav1/mapAppendOrder/README.md b/Challenge/vsakurav1/mapAppendOrder/README.md deleted file mode 100644 index fccb0d1a..00000000 --- a/Challenge/vsakurav1/mapAppendOrder/README.md +++ /dev/null @@ -1,13 +0,0 @@ -# 문제제목 - -## 설명 - -배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 - -## Expected Output - -[ - { name: '홍길동', order: 1 }, - { name: '둘리', order: 2 }, - { name: '루피', order: 3 } -] diff --git a/Challenge/vsakurav1/mapAppendOrder/solve.js b/Challenge/vsakurav1/mapAppendOrder/solve.js deleted file mode 100644 index 9ec43d8a..00000000 --- a/Challenge/vsakurav1/mapAppendOrder/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = ['홍길동', '둘리', '루피']; - -// write your codes -const result = inputArray.map((name, index) => ({ name, order: index + 1 })); - -console.log(result); diff --git a/Challenge/vsakurav1/reduceSum/README.md b/Challenge/vsakurav1/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/vsakurav1/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/vsakurav1/reduceSum/solve.js b/Challenge/vsakurav1/reduceSum/solve.js deleted file mode 100644 index ee752188..00000000 --- a/Challenge/vsakurav1/reduceSum/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes -const result = inputArray.reduce((acc, crr) => acc + crr, 0); - -console.log(result); diff --git a/Challenge/vsakurav1/sortByPrice/README.md b/Challenge/vsakurav1/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/vsakurav1/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/vsakurav1/sortByPrice/solve.js b/Challenge/vsakurav1/sortByPrice/solve.js deleted file mode 100644 index 47bff3d4..00000000 --- a/Challenge/vsakurav1/sortByPrice/solve.js +++ /dev/null @@ -1,25 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, -]; - -// write your codes -const result = inputArray - .map(fruits => fruits) - .sort((fruitA, fruitB) => fruitA.price - fruitB.price); - -console.log(result); diff --git a/Challenge/vsakurav1/sortByPriceAndQuantity/README.md b/Challenge/vsakurav1/sortByPriceAndQuantity/README.md deleted file mode 100644 index 41cd5c95..00000000 --- a/Challenge/vsakurav1/sortByPriceAndQuantity/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 -만약 price가 같다면 quantity기준으로 오름차순 정렬하세요 - -## Expected Output - -[ - { name: '사과', price: 1000, quantity: 2 }, - { name: '오이', price: 2000, quantity: 49 }, - { name: '당근', price: 2000, quantity: 50 }, - { name: '참외', price: 5000, quantity: 10 }, - { name: '수박', price: 5000, quantity: 20 } -] diff --git a/Challenge/vsakurav1/sortByPriceAndQuantity/solve.js b/Challenge/vsakurav1/sortByPriceAndQuantity/solve.js deleted file mode 100644 index a8689e02..00000000 --- a/Challenge/vsakurav1/sortByPriceAndQuantity/solve.js +++ /dev/null @@ -1,40 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - quantity: 2, - }, - { - name: '수박', - price: 5000, - quantity: 20, - }, - { - name: '당근', - price: 2000, - quantity: 50, - }, - { - name: '참외', - price: 5000, - quantity: 10, - }, - { - name: '오이', - price: 2000, - quantity: 49, - }, -]; - -// write your codes -const result = inputArray - .map(fruits => fruits) - .sort((fruitA, fruitB) => { - if (fruitA.price !== fruitB.price) { - return fruitA.price - fruitB.price; - } else { - return fruitA.quantity - fruitB.quantity; - } - }); - -console.log(result); diff --git a/Challenge/yongveloper/filterAge/README.md b/Challenge/yongveloper/filterAge/README.md deleted file mode 100644 index 1c73138e..00000000 --- a/Challenge/yongveloper/filterAge/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 - -## Expected Output - -[ { name: '일미', age: 35 }, { name: '이미', age: 45 } ] diff --git a/Challenge/yongveloper/filterAge/solve.js b/Challenge/yongveloper/filterAge/solve.js deleted file mode 100644 index 562cdc13..00000000 --- a/Challenge/yongveloper/filterAge/solve.js +++ /dev/null @@ -1,22 +0,0 @@ -const inputArray = [ - { - name: '영미', - age: 25, - }, - { - name: '일미', - age: 35, - }, - { - name: '이미', - age: 45, - }, - { - name: '삼미', - age: 55, - }, -]; -// write your codes - -const result = inputArray.filter((user) => user.age >= 30 && user.age <= 50); -console.log(result); diff --git a/Challenge/yongveloper/filterOdd/README.md b/Challenge/yongveloper/filterOdd/README.md deleted file mode 100644 index 9bf99a18..00000000 --- a/Challenge/yongveloper/filterOdd/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -홀수만 뽑아 배열로 만드세요 - -## Expected Output - -[5, 1, 3] diff --git a/Challenge/yongveloper/filterOdd/solve.js b/Challenge/yongveloper/filterOdd/solve.js deleted file mode 100644 index f2b47341..00000000 --- a/Challenge/yongveloper/filterOdd/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [4, 2, 5, 1, 3]; - -// write your codes -const result = inputArray.filter((number) => number % 2 === 1); -console.log(result); diff --git a/Challenge/yongveloper/findWord/README.md b/Challenge/yongveloper/findWord/README.md deleted file mode 100644 index 8ef123f4..00000000 --- a/Challenge/yongveloper/findWord/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -용가리라는 단어가 있으면 true 없으면 false를 출력 - -## Expected Output - -true diff --git a/Challenge/yongveloper/findWord/solve.js b/Challenge/yongveloper/findWord/solve.js deleted file mode 100644 index 497e115f..00000000 --- a/Challenge/yongveloper/findWord/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; - -// write your codes -const result = inputArray.includes('용가리'); -console.log(result); diff --git a/Challenge/yongveloper/forEachFilter/README.md b/Challenge/yongveloper/forEachFilter/README.md deleted file mode 100644 index d826e8e6..00000000 --- a/Challenge/yongveloper/forEachFilter/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 40 이상인 수만 뽑아 배열을 만드세요. - -## Expected Output - -[ 100, 40 ] diff --git a/Challenge/yongveloper/forEachFilter/solve.js b/Challenge/yongveloper/forEachFilter/solve.js deleted file mode 100644 index 23975bf7..00000000 --- a/Challenge/yongveloper/forEachFilter/solve.js +++ /dev/null @@ -1,10 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let result = []; -inputArray.forEach((number) => { - if (number >= 40) { - result.push(number); - } -}); -console.log(result); diff --git a/Challenge/yongveloper/forEachFilterIsNaN/README.md b/Challenge/yongveloper/forEachFilterIsNaN/README.md deleted file mode 100644 index ba71774d..00000000 --- a/Challenge/yongveloper/forEachFilterIsNaN/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -배열 원소중 숫자인 원소만 뽑아 배열을 만드세요. - -## Expected Output - -[ 1, 40, 51.5, 88 ] diff --git a/Challenge/yongveloper/forEachFilterIsNaN/solve.js b/Challenge/yongveloper/forEachFilterIsNaN/solve.js deleted file mode 100644 index 1c9e6c22..00000000 --- a/Challenge/yongveloper/forEachFilterIsNaN/solve.js +++ /dev/null @@ -1,11 +0,0 @@ -const inputArray = [1, 40, '라매', '개발자', 51.5, 'a', 88]; - -// write your codes - -const result = []; -inputArray.forEach((item) => { - if (typeof item === 'number') { - result.push(item); - } -}); -console.log(result); diff --git a/Challenge/yongveloper/forEachMap/README.md b/Challenge/yongveloper/forEachMap/README.md deleted file mode 100644 index d0e84215..00000000 --- a/Challenge/yongveloper/forEachMap/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 각 원소 끝에 '%'를 붙인 문자열 배열을 출력하세요 - -## Expected Output - -[ '100%', '10%', '20%', '40%' ] diff --git a/Challenge/yongveloper/forEachMap/solve.js b/Challenge/yongveloper/forEachMap/solve.js deleted file mode 100644 index acc6cf1e..00000000 --- a/Challenge/yongveloper/forEachMap/solve.js +++ /dev/null @@ -1,8 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let result = []; -inputArray.forEach((number) => { - result.push(`${number}%`); -}); -console.log(result); diff --git a/Challenge/yongveloper/forEachReduce/README.md b/Challenge/yongveloper/forEachReduce/README.md deleted file mode 100644 index 8f369ed9..00000000 --- a/Challenge/yongveloper/forEachReduce/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# forEachReduce - -## 설명 - -forEach 메소드를 사용해서 배열의 총 합을 출력하는 코드를 작성하세요 - -## Expected Output - -170 diff --git a/Challenge/yongveloper/forEachReduce/solve.js b/Challenge/yongveloper/forEachReduce/solve.js deleted file mode 100644 index c0d380c0..00000000 --- a/Challenge/yongveloper/forEachReduce/solve.js +++ /dev/null @@ -1,6 +0,0 @@ -const inputArray = [100, 10, 20, 40]; - -// write your codes -let result = 0; -inputArray.forEach((number) => (result += number)); -console.log(result); diff --git a/Challenge/yongveloper/reduceSum/README.md b/Challenge/yongveloper/reduceSum/README.md deleted file mode 100644 index 8c607eb2..00000000 --- a/Challenge/yongveloper/reduceSum/README.md +++ /dev/null @@ -1,9 +0,0 @@ -# 문제제목 - -## 설명 - -reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. - -## Expected Output - -106 diff --git a/Challenge/yongveloper/reduceSum/solve.js b/Challenge/yongveloper/reduceSum/solve.js deleted file mode 100644 index ac791cf6..00000000 --- a/Challenge/yongveloper/reduceSum/solve.js +++ /dev/null @@ -1,5 +0,0 @@ -const inputArray = [10, 3, 20, 5, 8, 60]; - -// write your codes -const result = inputArray.reduce((acc, cur) => acc + cur); -console.log(result); diff --git a/Challenge/yongveloper/sortByPrice/README.md b/Challenge/yongveloper/sortByPrice/README.md deleted file mode 100644 index b1ccf70e..00000000 --- a/Challenge/yongveloper/sortByPrice/README.md +++ /dev/null @@ -1,14 +0,0 @@ -# 문제제목 - -## 설명 - -배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 - -## Expected Output - -[ - { name: '사과', price: 1000 }, - { name: '당근', price: 2000 }, - { name: '수박', price: 5000 }, - { name: '참외', price: 10000 } -] diff --git a/Challenge/yongveloper/sortByPrice/solve.js b/Challenge/yongveloper/sortByPrice/solve.js deleted file mode 100644 index ef40f2da..00000000 --- a/Challenge/yongveloper/sortByPrice/solve.js +++ /dev/null @@ -1,33 +0,0 @@ -const inputArray = [ - { - name: '사과', - price: 1000, - }, - { - name: '수박', - price: 5000, - }, - { - name: '당근', - price: 2000, - }, - { - name: '참외', - price: 10000, - }, -]; - -// write your codes - -const result = [...inputArray]; -result.sort((a, b) => { - if (a.price > b.price) { - return 1; - } else if (a.price < b.price) { - return -1; - } else { - return 0; - } -}); - -console.log(result); diff --git a/Problems/Challenge/sy1014/everyArray/solve.js b/Problems/Challenge/sy1014/everyArray/solve.js new file mode 100644 index 00000000..d7d143c7 --- /dev/null +++ b/Problems/Challenge/sy1014/everyArray/solve.js @@ -0,0 +1,11 @@ +function solution(inputArray) { + +return inputArray.every(el => el % 2 === 0) + +} + +exports.solution = solution; + +/* Array.prototype.every() : every메소드는 배열 안의 모든 요소가 주어진 판별 함수를 통과하는지 테스트한다. boolean 값을 반환한다. +참고로 빈 배열에서 호출하면 무조건 true를 반환한다 +*/ \ No newline at end of file diff --git a/Problems/everyArray/solve.js b/Problems/everyArray/solve.js index b0892aaf..78444de1 100644 --- a/Problems/everyArray/solve.js +++ b/Problems/everyArray/solve.js @@ -1,3 +1,8 @@ -function solution(inputArray) {} +function solution(inputArray) { + + + + +} exports.solution = solution; diff --git a/Problems/expDivOdd/README.md b/Problems/expDivOdd/README.md deleted file mode 100644 index c07ab10b..00000000 --- a/Problems/expDivOdd/README.md +++ /dev/null @@ -1,3 +0,0 @@ -## 설명 - -제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. diff --git a/Problems/expDivOdd/solve.js b/Problems/expDivOdd/solve.js deleted file mode 100644 index b0892aaf..00000000 --- a/Problems/expDivOdd/solve.js +++ /dev/null @@ -1,3 +0,0 @@ -function solution(inputArray) {} - -exports.solution = solution; diff --git a/Problems/expDivOdd/solve.test.js b/Problems/expDivOdd/solve.test.js deleted file mode 100644 index ca37fcc3..00000000 --- a/Problems/expDivOdd/solve.test.js +++ /dev/null @@ -1,21 +0,0 @@ -const { solution } = require('./solve'); - -const test1 = { - input: [1, 7, 3, 4, 6], - answer: 66, -}; - -const test2 = { - input: [2, 3, 6, 8, 10], - answer: 168, -}; - -describe('everyArray', () => { - test('1, 7, 3, 4, 6', () => { - expect(solution(test1.input)).toEqual(test1.answer); - }); - - test('2, 3, 6, 8, 10', () => { - expect(solution(test2.input)).toEqual(test2.answer); - }); -}); diff --git a/package-lock.json b/package-lock.json index 6b7418c5..1017bdae 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,8 +1,4986 @@ { "name": "js-array-challenge", "version": "1.0.0", - "lockfileVersion": 1, + "lockfileVersion": 2, "requires": true, + "packages": { + "": { + "name": "js-array-challenge", + "version": "1.0.0", + "license": "ISC", + "dependencies": { + "jest": "^26.6.3" + } + }, + "node_modules/@babel/code-frame": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.13.tgz", + "integrity": "sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g==", + "dependencies": { + "@babel/highlight": "^7.12.13" + } + }, + "node_modules/@babel/compat-data": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.14.4.tgz", + "integrity": "sha512-i2wXrWQNkH6JplJQGn3Rd2I4Pij8GdHkXwHMxm+zV5YG/Jci+bCNrWZEWC4o+umiDkRrRs4dVzH3X4GP7vyjQQ==" + }, + "node_modules/@babel/core": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.14.3.tgz", + "integrity": "sha512-jB5AmTKOCSJIZ72sd78ECEhuPiDMKlQdDI/4QRI6lzYATx5SSogS1oQA2AoPecRCknm30gHi2l+QVvNUu3wZAg==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.3", + "@babel/helper-compilation-targets": "^7.13.16", + "@babel/helper-module-transforms": "^7.14.2", + "@babel/helpers": "^7.14.0", + "@babel/parser": "^7.14.3", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.1.2", + "semver": "^6.3.0", + "source-map": "^0.5.0" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@babel/core/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/generator": { + "version": "7.14.3", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.14.3.tgz", + "integrity": "sha512-bn0S6flG/j0xtQdz3hsjJ624h3W0r3llttBMfyHX3YrZ/KtLYr15bjA0FXkgW7FpvrDuTuElXeVjiKlYRpnOFA==", + "dependencies": { + "@babel/types": "^7.14.2", + "jsesc": "^2.5.1", + "source-map": "^0.5.0" + } + }, + "node_modules/@babel/generator/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/@babel/helper-compilation-targets": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.14.4.tgz", + "integrity": "sha512-JgdzOYZ/qGaKTVkn5qEDV/SXAh8KcyUVkCoSWGN8T3bwrgd6m+/dJa2kVGi6RJYJgEYPBdZ84BZp9dUjNWkBaA==", + "dependencies": { + "@babel/compat-data": "^7.14.4", + "@babel/helper-validator-option": "^7.12.17", + "browserslist": "^4.16.6", + "semver": "^6.3.0" + } + }, + "node_modules/@babel/helper-function-name": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.14.2.tgz", + "integrity": "sha512-NYZlkZRydxw+YT56IlhIcS8PAhb+FEUiOzuhFTfqDyPmzAhRge6ua0dQYT/Uh0t/EDHq05/i+e5M2d4XvjgarQ==", + "dependencies": { + "@babel/helper-get-function-arity": "^7.12.13", + "@babel/template": "^7.12.13", + "@babel/types": "^7.14.2" + } + }, + "node_modules/@babel/helper-get-function-arity": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz", + "integrity": "sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-member-expression-to-functions": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.12.tgz", + "integrity": "sha512-48ql1CLL59aKbU94Y88Xgb2VFy7a95ykGRbJJaaVv+LX5U8wFpLfiGXJJGUozsmA1oEh/o5Bp60Voq7ACyA/Sw==", + "dependencies": { + "@babel/types": "^7.13.12" + } + }, + "node_modules/@babel/helper-module-imports": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.13.12.tgz", + "integrity": "sha512-4cVvR2/1B693IuOvSI20xqqa/+bl7lqAMR59R4iu39R9aOX8/JoYY1sFaNvUMyMBGnHdwvJgUrzNLoUZxXypxA==", + "dependencies": { + "@babel/types": "^7.13.12" + } + }, + "node_modules/@babel/helper-module-transforms": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.14.2.tgz", + "integrity": "sha512-OznJUda/soKXv0XhpvzGWDnml4Qnwp16GN+D/kZIdLsWoHj05kyu8Rm5kXmMef+rVJZ0+4pSGLkeixdqNUATDA==", + "dependencies": { + "@babel/helper-module-imports": "^7.13.12", + "@babel/helper-replace-supers": "^7.13.12", + "@babel/helper-simple-access": "^7.13.12", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/helper-validator-identifier": "^7.14.0", + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.2" + } + }, + "node_modules/@babel/helper-optimise-call-expression": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz", + "integrity": "sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-plugin-utils": { + "version": "7.13.0", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz", + "integrity": "sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ==" + }, + "node_modules/@babel/helper-replace-supers": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.14.4.tgz", + "integrity": "sha512-zZ7uHCWlxfEAAOVDYQpEf/uyi1dmeC7fX4nCf2iz9drnCwi1zvwXL3HwWWNXUQEJ1k23yVn3VbddiI9iJEXaTQ==", + "dependencies": { + "@babel/helper-member-expression-to-functions": "^7.13.12", + "@babel/helper-optimise-call-expression": "^7.12.13", + "@babel/traverse": "^7.14.2", + "@babel/types": "^7.14.4" + } + }, + "node_modules/@babel/helper-simple-access": { + "version": "7.13.12", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.13.12.tgz", + "integrity": "sha512-7FEjbrx5SL9cWvXioDbnlYTppcZGuCY6ow3/D5vMggb2Ywgu4dMrpTJX0JdQAIcRRUElOIxF3yEooa9gUb9ZbA==", + "dependencies": { + "@babel/types": "^7.13.12" + } + }, + "node_modules/@babel/helper-split-export-declaration": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz", + "integrity": "sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg==", + "dependencies": { + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/helper-validator-identifier": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.14.0.tgz", + "integrity": "sha512-V3ts7zMSu5lfiwWDVWzRDGIN+lnCEUdaXgtVHJgLb1rGaA6jMrtB9EmE7L18foXJIE8Un/A/h6NJfGQp/e1J4A==" + }, + "node_modules/@babel/helper-validator-option": { + "version": "7.12.17", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz", + "integrity": "sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw==" + }, + "node_modules/@babel/helpers": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.14.0.tgz", + "integrity": "sha512-+ufuXprtQ1D1iZTO/K9+EBRn+qPWMJjZSw/S0KlFrxCw4tkrzv9grgpDHkY9MeQTjTY8i2sp7Jep8DfU6tN9Mg==", + "dependencies": { + "@babel/template": "^7.12.13", + "@babel/traverse": "^7.14.0", + "@babel/types": "^7.14.0" + } + }, + "node_modules/@babel/highlight": { + "version": "7.14.0", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.14.0.tgz", + "integrity": "sha512-YSCOwxvTYEIMSGaBQb5kDDsCopDdiUGsqpatp3fOlI4+2HQSkTmEVWnVuySdAC5EWCqSWWTv0ib63RjR7dTBdg==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.0", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "node_modules/@babel/highlight/node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/@babel/highlight/node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "node_modules/@babel/highlight/node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/highlight/node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/@babel/parser": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.14.4.tgz", + "integrity": "sha512-ArliyUsWDUqEGfWcmzpGUzNfLxTdTp6WU4IuP6QFSp9gGfWS6boxFCkJSJ/L4+RG8z/FnIU3WxCk6hPL9SSWeA==", + "bin": { + "parser": "bin/babel-parser.js" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-bigint": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-bigint/-/plugin-syntax-bigint-7.8.3.tgz", + "integrity": "sha512-wnTnFlG+YxQm3vDxpGE57Pj0srRU4sHE/mDkt1qv2YJJSeUAec2ma4WLUnUPeKjyrfntVwe/N6dCXpU+zL3Npg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "node_modules/@babel/plugin-syntax-import-meta": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-import-meta/-/plugin-syntax-import-meta-7.10.4.tgz", + "integrity": "sha512-Yqfm+XDx0+Prh3VSeEQCPU81yC+JWZ2pDPFSS4ZdpfZhp4MkFMaDC1UqseovEKwSUpnIL7+vK+Clp7bfh0iD7g==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.10.4" + } + }, + "node_modules/@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.8.0" + } + }, + "node_modules/@babel/plugin-syntax-top-level-await": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz", + "integrity": "sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.12.13" + } + }, + "node_modules/@babel/template": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.13.tgz", + "integrity": "sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/parser": "^7.12.13", + "@babel/types": "^7.12.13" + } + }, + "node_modules/@babel/traverse": { + "version": "7.14.2", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.14.2.tgz", + "integrity": "sha512-TsdRgvBFHMyHOOzcP9S6QU0QQtjxlRpEYOy3mcCO5RgmC305ki42aSAmfZEMSSYBla2oZ9BMqYlncBaKmD/7iA==", + "dependencies": { + "@babel/code-frame": "^7.12.13", + "@babel/generator": "^7.14.2", + "@babel/helper-function-name": "^7.14.2", + "@babel/helper-split-export-declaration": "^7.12.13", + "@babel/parser": "^7.14.2", + "@babel/types": "^7.14.2", + "debug": "^4.1.0", + "globals": "^11.1.0" + } + }, + "node_modules/@babel/types": { + "version": "7.14.4", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.14.4.tgz", + "integrity": "sha512-lCj4aIs0xUefJFQnwwQv2Bxg7Omd6bgquZ6LGC+gGMh6/s5qDVfjuCMlDmYQ15SLsWHd9n+X3E75lKIhl5Lkiw==", + "dependencies": { + "@babel/helper-validator-identifier": "^7.14.0", + "to-fast-properties": "^2.0.0" + } + }, + "node_modules/@bcoe/v8-coverage": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz", + "integrity": "sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==" + }, + "node_modules/@cnakazawa/watch": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.4.tgz", + "integrity": "sha512-v9kIhKwjeZThiWrLmj0y17CWoyddASLj9O2yvbZkbvw/N3rWOYy9zkV66ursAoVr0mV15bL8g0c4QZUE6cdDoQ==", + "dependencies": { + "exec-sh": "^0.3.2", + "minimist": "^1.2.0" + }, + "bin": { + "watch": "cli.js" + }, + "engines": { + "node": ">=0.1.95" + } + }, + "node_modules/@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", + "dependencies": { + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/@jest/console": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/console/-/console-26.6.2.tgz", + "integrity": "sha512-IY1R2i2aLsLr7Id3S6p2BA82GNWryt4oSvEXLAKc+L2zdi89dSkE8xC1C+0kpATG4JhBJREnQOH7/zmccM2B0g==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "jest-message-util": "^26.6.2", + "jest-util": "^26.6.2", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/core": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/core/-/core-26.6.3.tgz", + "integrity": "sha512-xvV1kKbhfUqFVuZ8Cyo+JPpipAHHAV3kcDBftiduK8EICXmTFddryy3P7NfZt8Pv37rA9nEJBKCCkglCPt/Xjw==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/reporters": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-changed-files": "^26.6.2", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-resolve-dependencies": "^26.6.3", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "jest-watcher": "^26.6.2", + "micromatch": "^4.0.2", + "p-each-series": "^2.1.0", + "rimraf": "^3.0.0", + "slash": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/environment": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-26.6.2.tgz", + "integrity": "sha512-nFy+fHl28zUrRsCeMB61VDThV1pVTtlEokBRgqPrcT1JNq4yRNIyTHfyht6PqtUvY9IsuLGTrbG8kPXjSZIZwA==", + "dependencies": { + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/fake-timers": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-26.6.2.tgz", + "integrity": "sha512-14Uleatt7jdzefLPYM3KLcnUl1ZNikaKq34enpb5XG9i81JpppDb5muZvonvKyrl7ftEHkKS5L5/eB/kxJ+bvA==", + "dependencies": { + "@jest/types": "^26.6.2", + "@sinonjs/fake-timers": "^6.0.1", + "@types/node": "*", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/globals": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/globals/-/globals-26.6.2.tgz", + "integrity": "sha512-85Ltnm7HlB/KesBUuALwQ68YTU72w9H2xW9FjZ1eL1U3lhtefjjl5c2MiUbpXt/i6LaPRvoOFJ22yCBSfQ0JIA==", + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/types": "^26.6.2", + "expect": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/reporters": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-26.6.2.tgz", + "integrity": "sha512-h2bW53APG4HvkOnVMo8q3QXa6pcaNt1HkwVsOPMBV6LD/q9oSpxNSYZQYkAnjdMjrJ86UuYeLo+aEZClV6opnw==", + "dependencies": { + "@bcoe/v8-coverage": "^0.2.3", + "@jest/console": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.2", + "graceful-fs": "^4.2.4", + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-instrument": "^4.0.3", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^4.0.0", + "istanbul-reports": "^3.0.2", + "jest-haste-map": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "slash": "^3.0.0", + "source-map": "^0.6.0", + "string-length": "^4.0.1", + "terminal-link": "^2.0.0", + "v8-to-istanbul": "^7.0.0" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "node-notifier": "^8.0.0" + } + }, + "node_modules/@jest/source-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-26.6.2.tgz", + "integrity": "sha512-YwYcCwAnNmOVsZ8mr3GfnzdXDAl4LaenZP5z+G0c8bzC9/dugL8zRmxZzdoTl4IaS3CryS1uWnROLPFmb6lVvA==", + "dependencies": { + "callsites": "^3.0.0", + "graceful-fs": "^4.2.4", + "source-map": "^0.6.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-result": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-26.6.2.tgz", + "integrity": "sha512-5O7H5c/7YlojphYNrK02LlDIV2GNPYisKwHm2QTKjNZeEzezCbwYs9swJySv2UfPMyZ0VdsmMv7jIlD/IKYQpQ==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/istanbul-lib-coverage": "^2.0.0", + "collect-v8-coverage": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/test-sequencer": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-26.6.3.tgz", + "integrity": "sha512-YHlVIjP5nfEyjlrSr8t/YdNfU/1XEt7c5b4OxcXCjyRhjzLYu/rO69/WHPuYcbCWkz8kAeZVZp2N2+IOLLEPGw==", + "dependencies": { + "@jest/test-result": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-runner": "^26.6.3", + "jest-runtime": "^26.6.3" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/transform": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-26.6.2.tgz", + "integrity": "sha512-E9JjhUgNzvuQ+vVAL21vlyfy12gP0GhazGgJC4h6qUt1jSdUXGWJ1wfu/X7Sd8etSgxV4ovT1pb9v5D6QW4XgA==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/types": "^26.6.2", + "babel-plugin-istanbul": "^6.0.0", + "chalk": "^4.0.0", + "convert-source-map": "^1.4.0", + "fast-json-stable-stringify": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-haste-map": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-util": "^26.6.2", + "micromatch": "^4.0.2", + "pirates": "^4.0.1", + "slash": "^3.0.0", + "source-map": "^0.6.1", + "write-file-atomic": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@jest/types": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/@jest/types/-/types-26.6.2.tgz", + "integrity": "sha512-fC6QCp7Sc5sX6g8Tvbmj4XUTbyrik0akgRy03yjXbQaBWWNWGE7SGtJk98m0N8nzegD/7SggrUlivxo5ax4KWQ==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.0", + "@types/istanbul-reports": "^3.0.0", + "@types/node": "*", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/@sinonjs/commons": { + "version": "1.8.3", + "resolved": "https://registry.npmjs.org/@sinonjs/commons/-/commons-1.8.3.tgz", + "integrity": "sha512-xkNcLAn/wZaX14RPlwizcKicDk9G3F8m2nU3L7Ukm5zBgTwiT0wsoFAHx9Jq56fJA1z/7uKGtCRu16sOUCLIHQ==", + "dependencies": { + "type-detect": "4.0.8" + } + }, + "node_modules/@sinonjs/fake-timers": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/@sinonjs/fake-timers/-/fake-timers-6.0.1.tgz", + "integrity": "sha512-MZPUxrmFubI36XS1DI3qmI0YdN1gks62JtFZvxR67ljjSNCeK6U08Zx4msEWOXuofgqUt6zPHSi1H9fbjR/NRA==", + "dependencies": { + "@sinonjs/commons": "^1.7.0" + } + }, + "node_modules/@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", + "engines": { + "node": ">= 6" + } + }, + "node_modules/@types/babel__core": { + "version": "7.1.14", + "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.14.tgz", + "integrity": "sha512-zGZJzzBUVDo/eV6KgbE0f0ZI7dInEYvo12Rb70uNQDshC3SkRMb67ja0GgRHZgAX3Za6rhaWlvbDO8rrGyAb1g==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0", + "@types/babel__generator": "*", + "@types/babel__template": "*", + "@types/babel__traverse": "*" + } + }, + "node_modules/@types/babel__generator": { + "version": "7.6.2", + "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.6.2.tgz", + "integrity": "sha512-MdSJnBjl+bdwkLskZ3NGFp9YcXGx5ggLpQQPqtgakVhsWK0hTtNYhjpZLlWQTviGTvF8at+Bvli3jV7faPdgeQ==", + "dependencies": { + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__template": { + "version": "7.4.0", + "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.4.0.tgz", + "integrity": "sha512-NTPErx4/FiPCGScH7foPyr+/1Dkzkni+rHiYHHoTjvwou7AQzJkNeD60A9CXRy+ZEN2B1bggmkTMCDb+Mv5k+A==", + "dependencies": { + "@babel/parser": "^7.1.0", + "@babel/types": "^7.0.0" + } + }, + "node_modules/@types/babel__traverse": { + "version": "7.11.1", + "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.11.1.tgz", + "integrity": "sha512-Vs0hm0vPahPMYi9tDjtP66llufgO3ST16WXaSTtDGEl9cewAl3AibmxWw6TINOqHPT9z0uABKAYjT9jNSg4npw==", + "dependencies": { + "@babel/types": "^7.3.0" + } + }, + "node_modules/@types/graceful-fs": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/@types/graceful-fs/-/graceful-fs-4.1.5.tgz", + "integrity": "sha512-anKkLmZZ+xm4p8JWBf4hElkM4XR+EZeA2M9BAkkTldmcyDY4mbdIJnRghDJH3Ov5ooY7/UAoENtmdMSkaAd7Cw==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/istanbul-lib-coverage": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz", + "integrity": "sha512-sz7iLqvVUg1gIedBOvlkxPlc8/uVzyS5OwGz1cKjXzkl3FpL3al0crU8YGU1WoHkxn0Wxbw5tyi6hvzJKNzFsw==" + }, + "node_modules/@types/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@types/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-plGgXAPfVKFoYfa9NpYDAkseG+g6Jr294RqeqcqDixSbU34MZVJRi/P+7Y8GDpzkEwLaGZZOpKIEmeVZNtKsrg==", + "dependencies": { + "@types/istanbul-lib-coverage": "*" + } + }, + "node_modules/@types/istanbul-reports": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@types/istanbul-reports/-/istanbul-reports-3.0.1.tgz", + "integrity": "sha512-c3mAZEuK0lvBp8tmuL74XRKn1+y2dcwOUpH7x4WrF6gk1GIgiluDRgMYQtw2OFcBvAJWlt6ASU3tSqxp0Uu0Aw==", + "dependencies": { + "@types/istanbul-lib-report": "*" + } + }, + "node_modules/@types/node": { + "version": "15.12.1", + "resolved": "https://registry.npmjs.org/@types/node/-/node-15.12.1.tgz", + "integrity": "sha512-zyxJM8I1c9q5sRMtVF+zdd13Jt6RU4r4qfhTd7lQubyThvLfx6yYekWSQjGCGV2Tkecgxnlpl/DNlb6Hg+dmEw==" + }, + "node_modules/@types/normalize-package-data": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/@types/normalize-package-data/-/normalize-package-data-2.4.0.tgz", + "integrity": "sha512-f5j5b/Gf71L+dbqxIpQ4Z2WlmI/mPJ0fOkGGmFgtb6sAu97EPczzbS3/tJKxmcYDj55OX6ssqwDAWOHIYDRDGA==" + }, + "node_modules/@types/prettier": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.2.3.tgz", + "integrity": "sha512-PijRCG/K3s3w1We6ynUKdxEc5AcuuH3NBmMDP8uvKVp6X43UY7NQlTzczakXP3DJR0F4dfNQIGjU2cUeRYs2AA==" + }, + "node_modules/@types/stack-utils": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-2.0.0.tgz", + "integrity": "sha512-RJJrrySY7A8havqpGObOB4W92QXKJo63/jFLLgpvOtsGUqbQZ9Sbgl35KMm1DjC6j7AvmmU2bIno+3IyEaemaw==" + }, + "node_modules/@types/yargs": { + "version": "15.0.13", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.13.tgz", + "integrity": "sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ==", + "dependencies": { + "@types/yargs-parser": "*" + } + }, + "node_modules/@types/yargs-parser": { + "version": "20.2.0", + "resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz", + "integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA==" + }, + "node_modules/abab": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", + "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==" + }, + "node_modules/acorn": { + "version": "8.3.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.3.0.tgz", + "integrity": "sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-globals": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-6.0.0.tgz", + "integrity": "sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==", + "dependencies": { + "acorn": "^7.1.1", + "acorn-walk": "^7.1.1" + } + }, + "node_modules/acorn-globals/node_modules/acorn": { + "version": "7.4.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", + "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-7.2.0.tgz", + "integrity": "sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dependencies": { + "debug": "4" + }, + "engines": { + "node": ">= 6.0.0" + } + }, + "node_modules/ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dependencies": { + "type-fest": "^0.21.3" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-escapes/node_modules/type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", + "dependencies": { + "sprintf-js": "~1.0.2" + } + }, + "node_modules/arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-flatten": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" + }, + "node_modules/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "bin": { + "atob": "bin/atob.js" + }, + "engines": { + "node": ">= 4.5.0" + } + }, + "node_modules/babel-jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-26.6.3.tgz", + "integrity": "sha512-pl4Q+GAVOHwvjrck6jKjvmGhnO3jHX/xuB9d27f+EJZ/6k+6nMuPjorrYp7s++bKKdANwzElBWnLWaObvTnaZA==", + "dependencies": { + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/babel__core": "^7.1.7", + "babel-plugin-istanbul": "^6.0.0", + "babel-preset-jest": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-plugin-istanbul": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.0.0.tgz", + "integrity": "sha512-AF55rZXpe7trmEylbaE1Gv54wn6rwU03aptvRoVIGP8YykoSxqdVLV1TfwflBCE/QtHmqtP8SWlTENqbK8GCSQ==", + "dependencies": { + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^4.0.0", + "test-exclude": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/babel-plugin-jest-hoist": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-26.6.2.tgz", + "integrity": "sha512-PO9t0697lNTmcEHH69mdtYiOIkkOlj9fySqfO3K1eCcdISevLAE0xY59VLLUj0SoiPiTX/JU2CYFpILydUa5Lw==", + "dependencies": { + "@babel/template": "^7.3.3", + "@babel/types": "^7.3.3", + "@types/babel__core": "^7.0.0", + "@types/babel__traverse": "^7.0.6" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/babel-preset-current-node-syntax": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/babel-preset-current-node-syntax/-/babel-preset-current-node-syntax-1.0.1.tgz", + "integrity": "sha512-M7LQ0bxarkxQoN+vz5aJPsLBn77n8QgTFmo8WK0/44auK2xlCXrYcUxHFxgU7qW5Yzw/CjmLRK2uJzaCd7LvqQ==", + "dependencies": { + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-bigint": "^7.8.3", + "@babel/plugin-syntax-class-properties": "^7.8.3", + "@babel/plugin-syntax-import-meta": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.8.3", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.8.3", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-top-level-await": "^7.8.3" + } + }, + "node_modules/babel-preset-jest": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-26.6.2.tgz", + "integrity": "sha512-YvdtlVm9t3k777c5NPQIv6cxFFFapys25HiUmuSgHwIZhfifweR5c5Sf5nwE3MAbfu327CYSvps8Yx6ANLyleQ==", + "dependencies": { + "babel-plugin-jest-hoist": "^26.6.2", + "babel-preset-current-node-syntax": "^1.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "dependencies": { + "cache-base": "^1.0.1", + "class-utils": "^0.3.5", + "component-emitter": "^1.2.1", + "define-property": "^1.0.0", + "isobject": "^3.0.1", + "mixin-deep": "^1.2.0", + "pascalcase": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/base/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/browser-process-hrtime": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz", + "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==" + }, + "node_modules/browserslist": { + "version": "4.16.6", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.6.tgz", + "integrity": "sha512-Wspk/PqO+4W9qp5iUTJsa1B/QrYn1keNCcEP5OvP7WBwT4KaDly0uONYmC6Xa3Z5IqnUgS0KcgLYu1l74x0ZXQ==", + "dependencies": { + "caniuse-lite": "^1.0.30001219", + "colorette": "^1.2.2", + "electron-to-chromium": "^1.3.723", + "escalade": "^3.1.1", + "node-releases": "^1.1.71" + }, + "bin": { + "browserslist": "cli.js" + }, + "engines": { + "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" + } + }, + "node_modules/bser": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/bser/-/bser-2.1.1.tgz", + "integrity": "sha512-gQxTNE/GAfIIrmHLUE3oJyp5FO6HRBfhjnw4/wMmA63ZGDJnWBmgY/lyQBpnDUkGmAhbSe39tx2d/iTOAfglwQ==", + "dependencies": { + "node-int64": "^0.4.0" + } + }, + "node_modules/buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==" + }, + "node_modules/cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "dependencies": { + "collection-visit": "^1.0.0", + "component-emitter": "^1.2.1", + "get-value": "^2.0.6", + "has-value": "^1.0.0", + "isobject": "^3.0.1", + "set-value": "^2.0.0", + "to-object-path": "^0.3.0", + "union-value": "^1.0.0", + "unset-value": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/caniuse-lite": { + "version": "1.0.30001234", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001234.tgz", + "integrity": "sha512-a3gjUVKkmwLdNysa1xkUAwN2VfJUJyVW47rsi3aCbkRCtbHAfo+rOsCqVw29G6coQ8gzAPb5XBXwiGHwme3isA==" + }, + "node_modules/capture-exit": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", + "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", + "dependencies": { + "rsvp": "^4.8.4" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/chalk": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.1.tgz", + "integrity": "sha512-diHzdDKxcU+bAsUboHLPEDQiw0qEe0qd7SYUn3HgcFlWgbDcfLGswOHYeGrHKzG9z6UYf01d9VFMfZxPM1xZSg==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/char-regex": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/char-regex/-/char-regex-1.0.2.tgz", + "integrity": "sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==", + "engines": { + "node": ">=10" + } + }, + "node_modules/ci-info": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", + "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==" + }, + "node_modules/cjs-module-lexer": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cjs-module-lexer/-/cjs-module-lexer-0.6.0.tgz", + "integrity": "sha512-uc2Vix1frTfnuzxxu1Hp4ktSvM3QaI4oXl4ZUqL1wjTu/BGki9TrCWoqLTg/drR1KwAEarXuRFCG2Svr1GxPFw==" + }, + "node_modules/class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "dependencies": { + "arr-union": "^3.1.0", + "define-property": "^0.2.5", + "isobject": "^3.0.0", + "static-extend": "^0.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/class-utils/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "node_modules/co": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", + "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", + "engines": { + "iojs": ">= 1.0.0", + "node": ">= 0.12.0" + } + }, + "node_modules/collect-v8-coverage": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz", + "integrity": "sha512-iBPtljfCNcTKNAto0KEtDfZ3qzjJvqE3aTGZsbhjSBlorqpXJlaWWtPO35D+ZImoC3KWejX64o+yPGxhWSTzfg==" + }, + "node_modules/collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "dependencies": { + "map-visit": "^1.0.0", + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/colorette": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.2.tgz", + "integrity": "sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=" + }, + "node_modules/convert-source-map": { + "version": "1.7.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", + "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", + "dependencies": { + "safe-buffer": "~5.1.1" + } + }, + "node_modules/copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/cross-spawn": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", + "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", + "dependencies": { + "nice-try": "^1.0.4", + "path-key": "^2.0.1", + "semver": "^5.5.0", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + }, + "engines": { + "node": ">=4.8" + } + }, + "node_modules/cross-spawn/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/cssom": { + "version": "0.4.4", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.4.4.tgz", + "integrity": "sha512-p3pvU7r1MyyqbTk+WbNJIgJjG2VmTIaB10rI93LzVPrmDJKkzKYMtxxyAvQXR/NS6otuzveI7+7BBq3SjBS2mw==" + }, + "node_modules/cssstyle": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-2.3.0.tgz", + "integrity": "sha512-AZL67abkUzIuvcHqk7c09cezpGNcxUxU4Ioi/05xHk4DQeTkWmGYftIE6ctU6AEt+Gn4n1lDStOtj7FKycP71A==", + "dependencies": { + "cssom": "~0.3.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/cssstyle/node_modules/cssom": { + "version": "0.3.8", + "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.8.tgz", + "integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg==" + }, + "node_modules/data-urls": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-2.0.0.tgz", + "integrity": "sha512-X5eWTSXO/BJmpdIKCRuKUgSCgAN0OwliVK3yPKbwIWU1Tdw5BRajxlzMidvh+gwko9AfQ9zIj52pzF91Q3YAvQ==", + "dependencies": { + "abab": "^2.0.3", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/decimal.js": { + "version": "10.2.1", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.2.1.tgz", + "integrity": "sha512-KaL7+6Fw6i5A2XSnsbhm/6B+NuEA7TZ4vqxnd5tXz9sbKtrN9Srj8ab4vKVdK8YAqZO9P1kg45Y6YLoduPf+kw==" + }, + "node_modules/decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/deep-is": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", + "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=" + }, + "node_modules/deepmerge": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-4.2.2.tgz", + "integrity": "sha512-FJ3UgI4gIl+PHZm53knsuSFpE+nESMr7M4v9QcgB7S63Kj/6WqMiFQJpBBYz1Pt+66bZpP3Q7Lye0Oo9MPKEdg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", + "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "dependencies": { + "is-descriptor": "^1.0.2", + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/define-property/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/detect-newline": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-3.1.0.tgz", + "integrity": "sha512-TLz+x/vEXm/Y7P7wn1EJFNLxYpUD4TgMosxY6fAVJUnJMbupHBOncxyWUG9OpTaH9EBD7uFI5LfEgmMOc54DsA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/diff-sequences": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-26.6.2.tgz", + "integrity": "sha512-Mv/TDa3nZ9sbc5soK+OoA74BsS3mL37yixCvUAQkiuA4Wz6YtwP/K47n2rv2ovzHZvoiQeA5FTQOschKkEwB0Q==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/domexception": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/domexception/-/domexception-2.0.1.tgz", + "integrity": "sha512-yxJ2mFy/sibVQlu5qHjOkf9J3K6zgmCxgJ94u2EdvDOV09H+32LtRswEcUsmUWN72pVLOEnTSRaIVVzVQgS0dg==", + "dependencies": { + "webidl-conversions": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/domexception/node_modules/webidl-conversions": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-5.0.0.tgz", + "integrity": "sha512-VlZwKPCkYKxQgeSbH5EyngOmRp7Ww7I9rQLERETtf5ofd9pGeswWiOtogpEO850jziPRarreGxn5QIiTqpb2wA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/electron-to-chromium": { + "version": "1.3.749", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.749.tgz", + "integrity": "sha512-F+v2zxZgw/fMwPz/VUGIggG4ZndDsYy0vlpthi3tjmDZlcfbhN5mYW0evXUsBr2sUtuDANFtle410A9u/sd/4A==" + }, + "node_modules/emittery": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/emittery/-/emittery-0.7.2.tgz", + "integrity": "sha512-A8OG5SR/ij3SsJdWDJdkkSYUjQdCUx6APQXem0SaEePBSRg4eymGYwBkKo1Y6DU+af/Jn2dBQqDBvjnr9Vi8nQ==", + "engines": { + "node": ">=10" + } + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/end-of-stream": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", + "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "dependencies": { + "once": "^1.4.0" + } + }, + "node_modules/error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "dependencies": { + "is-arrayish": "^0.2.1" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/escodegen": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-2.0.0.tgz", + "integrity": "sha512-mmHKys/C8BFUGI+MAWNcSYoORYLMdPzjrknd2Vc+bUsjN5bXcr8EhrNB+UTqfL1y3I9c4fw2ihgtMPQLBRiQxw==", + "dependencies": { + "esprima": "^4.0.1", + "estraverse": "^5.2.0", + "esutils": "^2.0.2", + "optionator": "^0.8.1", + "source-map": "~0.6.1" + }, + "bin": { + "escodegen": "bin/escodegen.js", + "esgenerate": "bin/esgenerate.js" + }, + "engines": { + "node": ">=6.0" + } + }, + "node_modules/esprima": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "bin": { + "esparse": "bin/esparse.js", + "esvalidate": "bin/esvalidate.js" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/estraverse": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", + "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", + "engines": { + "node": ">=4.0" + } + }, + "node_modules/esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/exec-sh": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.6.tgz", + "integrity": "sha512-nQn+hI3yp+oD0huYhKwvYI32+JFeq+XkNcD1GAo3Y/MjxsfVGmrrzrnzjWiNY6f+pUCP440fThsFh5gZrRAU/w==" + }, + "node_modules/execa": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", + "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", + "dependencies": { + "cross-spawn": "^6.0.0", + "get-stream": "^4.0.0", + "is-stream": "^1.1.0", + "npm-run-path": "^2.0.0", + "p-finally": "^1.0.0", + "signal-exit": "^3.0.0", + "strip-eof": "^1.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "dependencies": { + "debug": "^2.3.3", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "posix-character-classes": "^0.1.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/expand-brackets/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/expand-brackets/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/expect": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/expect/-/expect-26.6.2.tgz", + "integrity": "sha512-9/hlOBkQl2l/PLHJx6JjoDF6xPKcJEsUlWKb23rKE7KzeDqUZKXKNMW27KIue5JMdBV9HgmoJPcc8HtO85t9IA==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-styles": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-regex-util": "^26.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "dependencies": { + "assign-symbols": "^1.0.0", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extend-shallow/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "dependencies": { + "array-unique": "^0.3.2", + "define-property": "^1.0.0", + "expand-brackets": "^2.1.4", + "extend-shallow": "^2.0.1", + "fragment-cache": "^0.2.1", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/extglob/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fast-json-stable-stringify": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz", + "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==" + }, + "node_modules/fast-levenshtein": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz", + "integrity": "sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=" + }, + "node_modules/fb-watchman": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.1.tgz", + "integrity": "sha512-DkPJKQeY6kKwmuMretBhr7G6Vodr7bFwDYTXIkfG1gjvNpaxBTQV3PbXg6bR1c1UP4jPOX0jHUbbHANL9vRjVg==", + "dependencies": { + "bser": "2.1.1" + } + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dependencies": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/for-in": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", + "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/form-data": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-3.0.1.tgz", + "integrity": "sha512-RHkBKtLWUVwd7SqRIvCZMEvAMoGUp0XU+seQiZejj0COz3RI3hWP4sCv3gZWWLjJTd7rGwcsF5eKZGii0r/hbg==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "dependencies": { + "map-cache": "^0.2.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==", + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/get-stream": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", + "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/glob": { + "version": "7.1.7", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.7.tgz", + "integrity": "sha512-OvD9ENzPLbegENnYP5UUfJIirTg4+XwMWGaQfQTY0JenxNvvIKP3U3/tAQSPIu/lHxXYSZmpXlUHeqAIdKzBLQ==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + } + }, + "node_modules/globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", + "engines": { + "node": ">=4" + } + }, + "node_modules/graceful-fs": { + "version": "4.2.6", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.6.tgz", + "integrity": "sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ==" + }, + "node_modules/growly": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", + "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", + "optional": true + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "dependencies": { + "get-value": "^2.0.6", + "has-values": "^1.0.0", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "dependencies": { + "is-number": "^3.0.0", + "kind-of": "^4.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/has-values/node_modules/kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/hosted-git-info": { + "version": "2.8.9", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.9.tgz", + "integrity": "sha512-mxIDAb9Lsm6DoOJ7xH+5+X4y1LU/4Hi50L9C5sIswK3JzULS4bwk1FvjdBgvYR4bzT4tuUQiC15FE2f5HbLvYw==" + }, + "node_modules/html-encoding-sniffer": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz", + "integrity": "sha512-D5JbOMBIR/TVZkubHT+OyT2705QvogUW4IBn6nHd756OwieSF9aDYFj4dv6HHEVGYbHaLETa3WggZYWWMyy3ZQ==", + "dependencies": { + "whatwg-encoding": "^1.0.5" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==" + }, + "node_modules/http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", + "dependencies": { + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/https-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", + "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "dependencies": { + "agent-base": "6", + "debug": "4" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/human-signals": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-1.1.1.tgz", + "integrity": "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw==", + "engines": { + "node": ">=8.12.0" + } + }, + "node_modules/iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "dependencies": { + "safer-buffer": ">= 2.1.2 < 3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/import-local": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/import-local/-/import-local-3.0.2.tgz", + "integrity": "sha512-vjL3+w0oulAVZ0hBHnxa/Nm5TAurf9YLQJDhqRZyqb+VKGOB6LU8t9H1Nr5CIo16vh9XfJTOoHwU0B71S557gA==", + "dependencies": { + "pkg-dir": "^4.2.0", + "resolve-cwd": "^3.0.0" + }, + "bin": { + "import-local-fixture": "fixtures/cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "engines": { + "node": ">=0.8.19" + } + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-accessor-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "node_modules/is-buffer": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", + "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==" + }, + "node_modules/is-ci": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", + "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "dependencies": { + "ci-info": "^2.0.0" + }, + "bin": { + "is-ci": "bin.js" + } + }, + "node_modules/is-core-module": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.4.0.tgz", + "integrity": "sha512-6A2fkfq1rfeQZjxrZJGerpLCTHRNEBiSgnu0+obeJpEPZRUooHgsizvzv0ZjJwOz3iWIHdJtVWJ/tmPr3D21/A==", + "dependencies": { + "has": "^1.0.3" + } + }, + "node_modules/is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-data-descriptor/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "dependencies": { + "is-accessor-descriptor": "^0.1.6", + "is-data-descriptor": "^0.1.4", + "kind-of": "^5.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-descriptor/node_modules/kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-docker": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.2.1.tgz", + "integrity": "sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ==", + "optional": true, + "bin": { + "is-docker": "cli.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-extendable": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", + "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-generator-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", + "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-potential-custom-element-name": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-potential-custom-element-name/-/is-potential-custom-element-name-1.0.1.tgz", + "integrity": "sha512-bCYeRA2rVibKZd+s2625gGnGF/t7DSqDs4dP7CrLA1m7jKWz6pps0LpYLJN8Q64HtmPKJ1hrN3nzPNKFEKOUiQ==" + }, + "node_modules/is-stream": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", + "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=" + }, + "node_modules/is-windows": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "optional": true, + "dependencies": { + "is-docker": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "node_modules/isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "node_modules/isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/istanbul-lib-coverage": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", + "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-instrument": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", + "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", + "dependencies": { + "@babel/core": "^7.7.5", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.0.0", + "semver": "^6.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", + "dependencies": { + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-lib-source-maps": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-4.0.0.tgz", + "integrity": "sha512-c16LpFRkR8vQXyHZ5nLpY35JZtzj1PQY1iZmesUbf1FZHbIupcWfjgOXBY9YHkLEQ6puz1u4Dgj6qmU/DisrZg==", + "dependencies": { + "debug": "^4.1.1", + "istanbul-lib-coverage": "^3.0.0", + "source-map": "^0.6.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/istanbul-reports": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.0.2.tgz", + "integrity": "sha512-9tZvz7AiR3PEDNGiV9vIouQ/EAcqMXFmkcA1CDFTwOB98OZVDL0PH9glHotf5Ugp6GCOTypfzGWI/OqjWNCRUw==", + "dependencies": { + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest/-/jest-26.6.3.tgz", + "integrity": "sha512-lGS5PXGAzR4RF7V5+XObhqz2KZIDUA1yD0DG6pBVmy10eh0ZIXQImRuzocsI/N2XZ1GrLFwTS27In2i2jlpq1Q==", + "dependencies": { + "@jest/core": "^26.6.3", + "import-local": "^3.0.2", + "jest-cli": "^26.6.3" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-26.6.2.tgz", + "integrity": "sha512-fDS7szLcY9sCtIip8Fjry9oGf3I2ht/QT21bAHm5Dmf0mD4X3ReNUf17y+bO6fR8WgbIZTlbyG1ak/53cbRzKQ==", + "dependencies": { + "@jest/types": "^26.6.2", + "execa": "^4.0.0", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-changed-files/node_modules/cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", + "dependencies": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-changed-files/node_modules/execa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-4.1.0.tgz", + "integrity": "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA==", + "dependencies": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "human-signals": "^1.1.1", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.0", + "onetime": "^5.1.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-changed-files/node_modules/get-stream": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", + "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", + "dependencies": { + "pump": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "dependencies": { + "path-key": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dependencies": { + "shebang-regex": "^3.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/jest-changed-files/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/jest-config": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-26.6.3.tgz", + "integrity": "sha512-t5qdIj/bCj2j7NFVHb2nFB4aUdfucDn3JRKgrZnplb8nieAirAzRSHP8uDEd+qV6ygzg9Pz4YG7UTJf94LPSyg==", + "dependencies": { + "@babel/core": "^7.1.0", + "@jest/test-sequencer": "^26.6.3", + "@jest/types": "^26.6.2", + "babel-jest": "^26.6.3", + "chalk": "^4.0.0", + "deepmerge": "^4.2.2", + "glob": "^7.1.1", + "graceful-fs": "^4.2.4", + "jest-environment-jsdom": "^26.6.2", + "jest-environment-node": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-jasmine2": "^26.6.3", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-diff": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-26.6.2.tgz", + "integrity": "sha512-6m+9Z3Gv9wN0WFVasqjCL/06+EFCMTqDEUl/b87HYK2rAPTyfz4ZIuSlPhY51PIQRWx5TaxeF1qmXKe9gfN3sA==", + "dependencies": { + "chalk": "^4.0.0", + "diff-sequences": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-docblock": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-26.0.0.tgz", + "integrity": "sha512-RDZ4Iz3QbtRWycd8bUEPxQsTlYazfYn/h5R65Fc6gOfwozFhoImx+affzky/FFBuqISPTqjXomoIGJVKBWoo0w==", + "dependencies": { + "detect-newline": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-each": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-26.6.2.tgz", + "integrity": "sha512-Mer/f0KaATbjl8MCJ+0GEpNdqmnVmDYqCTJYTvoo7rqmRiDllmp2AYN+06F93nXcY3ur9ShIjS+CO/uD+BbH4A==", + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-jsdom": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-26.6.2.tgz", + "integrity": "sha512-jgPqCruTlt3Kwqg5/WVFyHIOJHsiAvhcp2qiR2QQstuG9yWox5+iHpU3ZrcBxW14T4fe5Z68jAfLRh7joCSP2Q==", + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2", + "jsdom": "^16.4.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-environment-node": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-26.6.2.tgz", + "integrity": "sha512-zhtMio3Exty18dy8ee8eJ9kjnRyZC1N4C1Nt/VShN1apyXc8rWGtJ9lI7vqiWcyyXS4BVSEn9lxAM2D+07/Tag==", + "dependencies": { + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "jest-mock": "^26.6.2", + "jest-util": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-get-type": { + "version": "26.3.0", + "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-26.3.0.tgz", + "integrity": "sha512-TpfaviN1R2pQWkIihlfEanwOXK0zcxrKEE4MlU6Tn7keoXdN6/3gK/xl0yEh8DOunn5pOVGKf8hB4R9gVh04ig==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-haste-map": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-26.6.2.tgz", + "integrity": "sha512-easWIJXIw71B2RdR8kgqpjQrbMRWQBgiBwXYEhtGUTaX+doCjBheluShdDMeR8IMfJiTqH4+zfhtg29apJf/8w==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/graceful-fs": "^4.1.2", + "@types/node": "*", + "anymatch": "^3.0.3", + "fb-watchman": "^2.0.0", + "graceful-fs": "^4.2.4", + "jest-regex-util": "^26.0.0", + "jest-serializer": "^26.6.2", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "micromatch": "^4.0.2", + "sane": "^4.0.3", + "walker": "^1.0.7" + }, + "engines": { + "node": ">= 10.14.2" + }, + "optionalDependencies": { + "fsevents": "^2.1.2" + } + }, + "node_modules/jest-jasmine2": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-26.6.3.tgz", + "integrity": "sha512-kPKUrQtc8aYwBV7CqBg5pu+tmYXlvFlSFYn18ev4gPFtrRzB15N2gW/Roew3187q2w2eHuu0MU9TJz6w0/nPEg==", + "dependencies": { + "@babel/traverse": "^7.1.0", + "@jest/environment": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "co": "^4.6.0", + "expect": "^26.6.2", + "is-generator-fn": "^2.0.0", + "jest-each": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "pretty-format": "^26.6.2", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-leak-detector": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-26.6.2.tgz", + "integrity": "sha512-i4xlXpsVSMeKvg2cEKdfhh0H39qlJlP5Ex1yQxwF9ubahboQYMgTtz5oML35AVA3B4Eu+YsmwaiKVev9KCvLxg==", + "dependencies": { + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-matcher-utils": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-26.6.2.tgz", + "integrity": "sha512-llnc8vQgYcNqDrqRDXWwMr9i7rS5XFiCwvh6DTP7Jqa2mqpcCBBlpCbn+trkG0KNhPu/h8rzyBkriOtBstvWhw==", + "dependencies": { + "chalk": "^4.0.0", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-message-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-26.6.2.tgz", + "integrity": "sha512-rGiLePzQ3AzwUshu2+Rn+UMFk0pHN58sOG+IaJbk5Jxuqo3NYO1U2/MIR4S1sKgsoYSXSzdtSa0TgrmtUwEbmA==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/stack-utils": "^2.0.0", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "micromatch": "^4.0.2", + "pretty-format": "^26.6.2", + "slash": "^3.0.0", + "stack-utils": "^2.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-mock": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-26.6.2.tgz", + "integrity": "sha512-YyFjePHHp1LzpzYcmgqkJ0nm0gg/lJx2aZFzFy1S6eUqNjXsOqTK10zNRff2dNfssgokjkG65OlWNcIlgd3zew==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-pnp-resolver": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz", + "integrity": "sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/jest-regex-util": { + "version": "26.0.0", + "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-26.0.0.tgz", + "integrity": "sha512-Gv3ZIs/nA48/Zvjrl34bf+oD76JHiGDUxNOVgUjh3j890sblXryjY4rss71fPtD/njchl6PSE2hIhvyWa1eT0A==", + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-26.6.2.tgz", + "integrity": "sha512-sOxsZOq25mT1wRsfHcbtkInS+Ek7Q8jCHUB0ZUTP0tc/c41QHriU/NunqMfCUWsL4H3MHpvQD4QR9kSYhS7UvQ==", + "dependencies": { + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "jest-pnp-resolver": "^1.2.2", + "jest-util": "^26.6.2", + "read-pkg-up": "^7.0.1", + "resolve": "^1.18.1", + "slash": "^3.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-resolve-dependencies": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-26.6.3.tgz", + "integrity": "sha512-pVwUjJkxbhe4RY8QEWzN3vns2kqyuldKpxlxJlzEYfKSvY6/bMvxoFrYYzUO1Gx28yKWN37qyV7rIoIp2h8fTg==", + "dependencies": { + "@jest/types": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-snapshot": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runner": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-26.6.3.tgz", + "integrity": "sha512-atgKpRHnaA2OvByG/HpGA4g6CSPS/1LK0jK3gATJAoptC1ojltpmVlYC3TYgdmGp+GLuhzpH30Gvs36szSL2JQ==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "emittery": "^0.7.1", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-docblock": "^26.0.0", + "jest-haste-map": "^26.6.2", + "jest-leak-detector": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "jest-runtime": "^26.6.3", + "jest-util": "^26.6.2", + "jest-worker": "^26.6.2", + "source-map-support": "^0.5.6", + "throat": "^5.0.0" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-runtime": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-26.6.3.tgz", + "integrity": "sha512-lrzyR3N8sacTAMeonbqpnSka1dHNux2uk0qqDXVkMv2c/A3wYnvQ4EXuI013Y6+gSKSCxdaczvf4HF0mVXHRdw==", + "dependencies": { + "@jest/console": "^26.6.2", + "@jest/environment": "^26.6.2", + "@jest/fake-timers": "^26.6.2", + "@jest/globals": "^26.6.2", + "@jest/source-map": "^26.6.2", + "@jest/test-result": "^26.6.2", + "@jest/transform": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/yargs": "^15.0.0", + "chalk": "^4.0.0", + "cjs-module-lexer": "^0.6.0", + "collect-v8-coverage": "^1.0.0", + "exit": "^0.1.2", + "glob": "^7.1.3", + "graceful-fs": "^4.2.4", + "jest-config": "^26.6.3", + "jest-haste-map": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-mock": "^26.6.2", + "jest-regex-util": "^26.0.0", + "jest-resolve": "^26.6.2", + "jest-snapshot": "^26.6.2", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "slash": "^3.0.0", + "strip-bom": "^4.0.0", + "yargs": "^15.4.1" + }, + "bin": { + "jest-runtime": "bin/jest-runtime.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-serializer": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-26.6.2.tgz", + "integrity": "sha512-S5wqyz0DXnNJPd/xfIzZ5Xnp1HrJWBczg8mMfMpN78OJ5eDxXyf+Ygld9wX1DnUWbIbhM1YDY95NjR4CBXkb2g==", + "dependencies": { + "@types/node": "*", + "graceful-fs": "^4.2.4" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-26.6.2.tgz", + "integrity": "sha512-OLhxz05EzUtsAmOMzuupt1lHYXCNib0ECyuZ/PZOx9TrZcC8vL0x+DUG3TL+GLX3yHG45e6YGjIm0XwDc3q3og==", + "dependencies": { + "@babel/types": "^7.0.0", + "@jest/types": "^26.6.2", + "@types/babel__traverse": "^7.0.4", + "@types/prettier": "^2.0.0", + "chalk": "^4.0.0", + "expect": "^26.6.2", + "graceful-fs": "^4.2.4", + "jest-diff": "^26.6.2", + "jest-get-type": "^26.3.0", + "jest-haste-map": "^26.6.2", + "jest-matcher-utils": "^26.6.2", + "jest-message-util": "^26.6.2", + "jest-resolve": "^26.6.2", + "natural-compare": "^1.4.0", + "pretty-format": "^26.6.2", + "semver": "^7.3.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-snapshot/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-util": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-26.6.2.tgz", + "integrity": "sha512-MDW0fKfsn0OI7MS7Euz6h8HNDXVQ0gaM9uW6RjfDmd1DAFcaxX9OqIakHIqhbnmF08Cf2DLDG+ulq8YQQ0Lp0Q==", + "dependencies": { + "@jest/types": "^26.6.2", + "@types/node": "*", + "chalk": "^4.0.0", + "graceful-fs": "^4.2.4", + "is-ci": "^2.0.0", + "micromatch": "^4.0.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-26.6.2.tgz", + "integrity": "sha512-NEYZ9Aeyj0i5rQqbq+tpIOom0YS1u2MVu6+euBsvpgIme+FOfRmoC4R5p0JiAUpaFvFy24xgrpMknarR/93XjQ==", + "dependencies": { + "@jest/types": "^26.6.2", + "camelcase": "^6.0.0", + "chalk": "^4.0.0", + "jest-get-type": "^26.3.0", + "leven": "^3.1.0", + "pretty-format": "^26.6.2" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-validate/node_modules/camelcase": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.2.0.tgz", + "integrity": "sha512-c7wVvbw3f37nuobQNtgsgG9POC9qMbNuMQmTCqZv23b6MIz0fcYpBiOlv9gEN/hdLdnZTDQhg6e9Dq5M1vKvfg==", + "engines": { + "node": ">=10" + } + }, + "node_modules/jest-watcher": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-26.6.2.tgz", + "integrity": "sha512-WKJob0P/Em2csiVthsI68p6aGKTIcsfjH9Gsx1f0A3Italz43e3ho0geSAVsmj09RWOELP1AZ/DXyJgOgDKxXQ==", + "dependencies": { + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "@types/node": "*", + "ansi-escapes": "^4.2.1", + "chalk": "^4.0.0", + "jest-util": "^26.6.2", + "string-length": "^4.0.1" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/jest-worker": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-26.6.2.tgz", + "integrity": "sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==", + "dependencies": { + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">= 10.13.0" + } + }, + "node_modules/jest/node_modules/jest-cli": { + "version": "26.6.3", + "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-26.6.3.tgz", + "integrity": "sha512-GF9noBSa9t08pSyl3CY4frMrqp+aQXFGFkf5hEPbh/pIUFYWMK6ZLTfbmadxJVcJrdRoChlWQsA2VkJcDFK8hg==", + "dependencies": { + "@jest/core": "^26.6.3", + "@jest/test-result": "^26.6.2", + "@jest/types": "^26.6.2", + "chalk": "^4.0.0", + "exit": "^0.1.2", + "graceful-fs": "^4.2.4", + "import-local": "^3.0.2", + "is-ci": "^2.0.0", + "jest-config": "^26.6.3", + "jest-util": "^26.6.2", + "jest-validate": "^26.6.2", + "prompts": "^2.0.1", + "yargs": "^15.4.1" + }, + "bin": { + "jest": "bin/jest.js" + }, + "engines": { + "node": ">= 10.14.2" + } + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "dependencies": { + "argparse": "^1.0.7", + "esprima": "^4.0.0" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jsdom": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-16.6.0.tgz", + "integrity": "sha512-Ty1vmF4NHJkolaEmdjtxTfSfkdb8Ywarwf63f+F8/mDD1uLSSWDxDuMiZxiPhwunLrn9LOSVItWj4bLYsLN3Dg==", + "dependencies": { + "abab": "^2.0.5", + "acorn": "^8.2.4", + "acorn-globals": "^6.0.0", + "cssom": "^0.4.4", + "cssstyle": "^2.3.0", + "data-urls": "^2.0.0", + "decimal.js": "^10.2.1", + "domexception": "^2.0.1", + "escodegen": "^2.0.0", + "form-data": "^3.0.0", + "html-encoding-sniffer": "^2.0.1", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-potential-custom-element-name": "^1.0.1", + "nwsapi": "^2.2.0", + "parse5": "6.0.1", + "saxes": "^5.0.1", + "symbol-tree": "^3.2.4", + "tough-cookie": "^4.0.0", + "w3c-hr-time": "^1.0.2", + "w3c-xmlserializer": "^2.0.0", + "webidl-conversions": "^6.1.0", + "whatwg-encoding": "^1.0.5", + "whatwg-mimetype": "^2.3.0", + "whatwg-url": "^8.5.0", + "ws": "^7.4.5", + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "bin": { + "jsesc": "bin/jsesc" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==" + }, + "node_modules/json5": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "dependencies": { + "minimist": "^1.2.5" + }, + "bin": { + "json5": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/kleur": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", + "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", + "engines": { + "node": ">=6" + } + }, + "node_modules/leven": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", + "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/levn": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", + "integrity": "sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4=", + "dependencies": { + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/lines-and-columns": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.1.6.tgz", + "integrity": "sha1-HADHQ7QzzQpOgHWPe2SldEDZ/wA=" + }, + "node_modules/locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dependencies": { + "p-locate": "^4.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dependencies": { + "yallist": "^4.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dependencies": { + "semver": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/makeerror": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", + "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", + "dependencies": { + "tmpl": "1.0.x" + } + }, + "node_modules/map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "dependencies": { + "object-visit": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "node_modules/micromatch": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.4.tgz", + "integrity": "sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==", + "dependencies": { + "braces": "^3.0.1", + "picomatch": "^2.2.3" + }, + "engines": { + "node": ">=8.6" + } + }, + "node_modules/mime-db": { + "version": "1.48.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.48.0.tgz", + "integrity": "sha512-FM3QwxV+TnZYQ2aRqhlKBMHxk10lTbMt3bBkMAp54ddrNeVSfcQYOOKuGuy3Ddrm38I04If834fOUSq1yzslJQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.31", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.31.tgz", + "integrity": "sha512-XGZnNzm3QvgKxa8dpzyhFTHmpP3l5YNusmne07VUOXxou9CqUqYa/HBy124RqtVh/O2pECas/MOcsDgpilPOPg==", + "dependencies": { + "mime-db": "1.48.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" + }, + "node_modules/mixin-deep": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", + "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "dependencies": { + "for-in": "^1.0.2", + "is-extendable": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/mixin-deep/node_modules/is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "dependencies": { + "is-plain-object": "^2.0.4" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/nanomatch": { + "version": "1.2.13", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", + "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "fragment-cache": "^0.2.1", + "is-windows": "^1.0.2", + "kind-of": "^6.0.2", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/natural-compare": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", + "integrity": "sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=" + }, + "node_modules/nice-try": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", + "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==" + }, + "node_modules/node-int64": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", + "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=" + }, + "node_modules/node-modules-regexp": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/node-modules-regexp/-/node-modules-regexp-1.0.0.tgz", + "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/node-notifier": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-8.0.2.tgz", + "integrity": "sha512-oJP/9NAdd9+x2Q+rfphB2RJCHjod70RcRLjosiPMMu5gjIfwVnOUGq2nbTjTUbmy0DJ/tFIVT30+Qe3nzl4TJg==", + "optional": true, + "dependencies": { + "growly": "^1.3.0", + "is-wsl": "^2.2.0", + "semver": "^7.3.2", + "shellwords": "^0.1.1", + "uuid": "^8.3.0", + "which": "^2.0.2" + } + }, + "node_modules/node-notifier/node_modules/semver": { + "version": "7.3.5", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.5.tgz", + "integrity": "sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==", + "optional": true, + "dependencies": { + "lru-cache": "^6.0.0" + }, + "bin": { + "semver": "bin/semver.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/node-notifier/node_modules/which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "optional": true, + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "node-which": "bin/node-which" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/node-releases": { + "version": "1.1.72", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.72.tgz", + "integrity": "sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==" + }, + "node_modules/normalize-package-data": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "dependencies": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "node_modules/normalize-package-data/node_modules/semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "bin": { + "semver": "bin/semver" + } + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/npm-run-path": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", + "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", + "dependencies": { + "path-key": "^2.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/nwsapi": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", + "integrity": "sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==" + }, + "node_modules/object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "dependencies": { + "copy-descriptor": "^0.1.0", + "define-property": "^0.2.5", + "kind-of": "^3.0.3" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-copy/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "dependencies": { + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "dependencies": { + "isobject": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "dependencies": { + "mimic-fn": "^2.1.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/optionator": { + "version": "0.8.3", + "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz", + "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==", + "dependencies": { + "deep-is": "~0.1.3", + "fast-levenshtein": "~2.0.6", + "levn": "~0.3.0", + "prelude-ls": "~1.1.2", + "type-check": "~0.3.2", + "word-wrap": "~1.2.3" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/p-each-series": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-2.2.0.tgz", + "integrity": "sha512-ycIL2+1V32th+8scbpTvyHNaHe02z0sjgh91XXjAk+ZeXoPN4Z46DVUnzdso0aX4KckKw0FNNFHdjZ2UsZvxiA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/p-finally": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", + "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", + "dependencies": { + "p-try": "^2.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dependencies": { + "p-limit": "^2.2.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", + "engines": { + "node": ">=6" + } + }, + "node_modules/parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", + "dependencies": { + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==" + }, + "node_modules/pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-key": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", + "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", + "engines": { + "node": ">=4" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/picomatch": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.0.tgz", + "integrity": "sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==", + "engines": { + "node": ">=8.6" + } + }, + "node_modules/pirates": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", + "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", + "dependencies": { + "node-modules-regexp": "^1.0.0" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", + "dependencies": { + "find-up": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/prelude-ls": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", + "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/pretty-format": { + "version": "26.6.2", + "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-26.6.2.tgz", + "integrity": "sha512-7AeGuCYNGmycyQbCqd/3PWH4eOoX/OiCa0uphp57NVTeAGdJGaAliecxwBDHYQCIvrW7aDBZCYeNTP/WX69mkg==", + "dependencies": { + "@jest/types": "^26.6.2", + "ansi-regex": "^5.0.0", + "ansi-styles": "^4.0.0", + "react-is": "^17.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/prompts": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.4.1.tgz", + "integrity": "sha512-EQyfIuO2hPDsX1L/blblV+H7I0knhgAd82cVneCwcdND9B8AuCDuRcBH6yIcG4dFzlOUqbazQqwGjx5xmsNLuQ==", + "dependencies": { + "kleur": "^3.0.3", + "sisteransi": "^1.0.5" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==" + }, + "node_modules/pump": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", + "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", + "dependencies": { + "end-of-stream": "^1.1.0", + "once": "^1.3.1" + } + }, + "node_modules/punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "engines": { + "node": ">=6" + } + }, + "node_modules/react-is": { + "version": "17.0.2", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-17.0.2.tgz", + "integrity": "sha512-w2GsyukL62IJnlaff/nRegPQR94C/XXamvMWmSHRJ4y7Ts/4ocGRmTHvOs8PSE6pB3dWOrD/nueuU5sduBsQ4w==" + }, + "node_modules/read-pkg": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", + "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", + "dependencies": { + "@types/normalize-package-data": "^2.4.0", + "normalize-package-data": "^2.5.0", + "parse-json": "^5.0.0", + "type-fest": "^0.6.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg-up": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", + "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", + "dependencies": { + "find-up": "^4.1.0", + "read-pkg": "^5.2.0", + "type-fest": "^0.8.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/read-pkg/node_modules/type-fest": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", + "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/regex-not": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", + "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "dependencies": { + "extend-shallow": "^3.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/remove-trailing-separator": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", + "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=" + }, + "node_modules/repeat-element": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.4.tgz", + "integrity": "sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/repeat-string": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", + "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==" + }, + "node_modules/resolve": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz", + "integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==", + "dependencies": { + "is-core-module": "^2.2.0", + "path-parse": "^1.0.6" + } + }, + "node_modules/resolve-cwd": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-3.0.0.tgz", + "integrity": "sha512-OrZaX2Mb+rJCpH/6CpSqt9xFVpN++x01XnN2ie9g6P5/3xelLAkXWVADpdz1IHD/KFfEXyE6V0U01OQ3UO2rEg==", + "dependencies": { + "resolve-from": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, + "node_modules/ret": { + "version": "0.1.15", + "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", + "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", + "engines": { + "node": ">=0.12" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + } + }, + "node_modules/rsvp": { + "version": "4.8.5", + "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", + "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", + "engines": { + "node": "6.* || >= 7.*" + } + }, + "node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/safe-regex": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", + "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "dependencies": { + "ret": "~0.1.10" + } + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "node_modules/sane": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", + "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", + "dependencies": { + "@cnakazawa/watch": "^1.0.3", + "anymatch": "^2.0.0", + "capture-exit": "^2.0.0", + "exec-sh": "^0.3.2", + "execa": "^1.0.0", + "fb-watchman": "^2.0.0", + "micromatch": "^3.1.4", + "minimist": "^1.1.1", + "walker": "~1.0.5" + }, + "bin": { + "sane": "src/cli.js" + }, + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/sane/node_modules/anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "dependencies": { + "micromatch": "^3.1.4", + "normalize-path": "^2.1.1" + } + }, + "node_modules/sane/node_modules/braces": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", + "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "dependencies": { + "arr-flatten": "^1.1.0", + "array-unique": "^0.3.2", + "extend-shallow": "^2.0.1", + "fill-range": "^4.0.0", + "isobject": "^3.0.1", + "repeat-element": "^1.1.2", + "snapdragon": "^0.8.1", + "snapdragon-node": "^2.0.1", + "split-string": "^3.0.2", + "to-regex": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/braces/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-number": "^3.0.0", + "repeat-string": "^1.6.1", + "to-regex-range": "^2.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/fill-range/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/is-number/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/micromatch": { + "version": "3.1.10", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", + "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", + "dependencies": { + "arr-diff": "^4.0.0", + "array-unique": "^0.3.2", + "braces": "^2.3.1", + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "extglob": "^2.0.4", + "fragment-cache": "^0.2.1", + "kind-of": "^6.0.2", + "nanomatch": "^1.2.9", + "object.pick": "^1.3.0", + "regex-not": "^1.0.0", + "snapdragon": "^0.8.1", + "to-regex": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/normalize-path": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", + "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", + "dependencies": { + "remove-trailing-separator": "^1.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sane/node_modules/to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "dependencies": { + "is-number": "^3.0.0", + "repeat-string": "^1.6.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/saxes": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/saxes/-/saxes-5.0.1.tgz", + "integrity": "sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==", + "dependencies": { + "xmlchars": "^2.2.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "bin": { + "semver": "bin/semver.js" + } + }, + "node_modules/set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "node_modules/set-value": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", + "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "dependencies": { + "extend-shallow": "^2.0.1", + "is-extendable": "^0.1.1", + "is-plain-object": "^2.0.3", + "split-string": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/set-value/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/shellwords": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", + "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", + "optional": true + }, + "node_modules/signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" + }, + "node_modules/sisteransi": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", + "integrity": "sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==" + }, + "node_modules/slash": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-3.0.0.tgz", + "integrity": "sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==", + "engines": { + "node": ">=8" + } + }, + "node_modules/snapdragon": { + "version": "0.8.2", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", + "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "dependencies": { + "base": "^0.11.1", + "debug": "^2.2.0", + "define-property": "^0.2.5", + "extend-shallow": "^2.0.1", + "map-cache": "^0.2.2", + "source-map": "^0.5.6", + "source-map-resolve": "^0.5.0", + "use": "^3.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "dependencies": { + "define-property": "^1.0.0", + "isobject": "^3.0.0", + "snapdragon-util": "^3.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "dependencies": { + "is-descriptor": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "dependencies": { + "kind-of": "^6.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-node/node_modules/is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "dependencies": { + "is-accessor-descriptor": "^1.0.0", + "is-data-descriptor": "^1.0.0", + "kind-of": "^6.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "dependencies": { + "kind-of": "^3.2.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon-util/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dependencies": { + "ms": "2.0.0" + } + }, + "node_modules/snapdragon/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "dependencies": { + "is-extendable": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/snapdragon/node_modules/ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" + }, + "node_modules/snapdragon/node_modules/source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-resolve": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", + "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", + "dependencies": { + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0", + "resolve-url": "^0.2.1", + "source-map-url": "^0.4.0", + "urix": "^0.1.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.19", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", + "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/source-map-url": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.1.tgz", + "integrity": "sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw==" + }, + "node_modules/spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "dependencies": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "node_modules/spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "dependencies": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "node_modules/spdx-license-ids": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.9.tgz", + "integrity": "sha512-Ki212dKK4ogX+xDo4CtOZBVIwhsKBEfsEEcwmJfLQzirgc2jIWdzg40Unxz/HzEUqM1WFzVlQSMF9kZZ2HboLQ==" + }, + "node_modules/split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "dependencies": { + "extend-shallow": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=" + }, + "node_modules/stack-utils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-2.0.3.tgz", + "integrity": "sha512-gL//fkxfWUsIlFL2Tl42Cl6+HFALEaB1FU76I/Fy+oZjRreP7OPMXFlGbxM7NQsI0ZpUfw76sHnv0WNYuTb7Iw==", + "dependencies": { + "escape-string-regexp": "^2.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/stack-utils/node_modules/escape-string-regexp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-2.0.0.tgz", + "integrity": "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "dependencies": { + "define-property": "^0.2.5", + "object-copy": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/static-extend/node_modules/define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "dependencies": { + "is-descriptor": "^0.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/string-length": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/string-length/-/string-length-4.0.2.tgz", + "integrity": "sha512-+l6rNN5fYHNhZZy41RXsYptCjA2Igmq4EG7kZAYFQI1E1VTXarr6ZPXBg6eq7Y6eK4FEhY6AJlyuFIb/v/S0VQ==", + "dependencies": { + "char-regex": "^1.0.2", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/string-width": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.2.tgz", + "integrity": "sha512-XBJbT3N4JhVumXE0eoLU9DCjcaF92KLNqTmFCnG1pf8duUxFGwtP6AD6nkjw9a3IdiRtL3E2w3JDiE/xi3vOeA==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dependencies": { + "ansi-regex": "^5.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-4.0.0.tgz", + "integrity": "sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-eof": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", + "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/supports-hyperlinks": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz", + "integrity": "sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==", + "dependencies": { + "has-flag": "^4.0.0", + "supports-color": "^7.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/symbol-tree": { + "version": "3.2.4", + "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", + "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" + }, + "node_modules/terminal-link": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/terminal-link/-/terminal-link-2.1.1.tgz", + "integrity": "sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==", + "dependencies": { + "ansi-escapes": "^4.2.1", + "supports-hyperlinks": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", + "dependencies": { + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/throat": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/throat/-/throat-5.0.0.tgz", + "integrity": "sha512-fcwX4mndzpLQKBS1DVYhGAcYaYt7vsHNIvQV+WXMvnow5cgjPphq5CaayLaGsjRdSCKZFNGt7/GYAuXaNOiYCA==" + }, + "node_modules/tmpl": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", + "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=" + }, + "node_modules/to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "engines": { + "node": ">=4" + } + }, + "node_modules/to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "dependencies": { + "kind-of": "^3.0.2" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-object-path/node_modules/kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "dependencies": { + "is-buffer": "^1.1.5" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", + "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "dependencies": { + "define-property": "^2.0.2", + "extend-shallow": "^3.0.2", + "regex-not": "^1.0.2", + "safe-regex": "^1.1.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/tough-cookie": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-4.0.0.tgz", + "integrity": "sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==", + "dependencies": { + "psl": "^1.1.33", + "punycode": "^2.1.1", + "universalify": "^0.1.2" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/tr46": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-2.1.0.tgz", + "integrity": "sha512-15Ih7phfcdP5YxqiB+iDtLoaTz4Nd35+IiAv0kQ5FNKHzXgdWqPoTIqEDDJmXceQt4JZk6lVPT8lnDlPpGDppw==", + "dependencies": { + "punycode": "^2.1.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/type-check": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz", + "integrity": "sha1-WITKtRLPHTVeP7eE8wgEsrUg23I=", + "dependencies": { + "prelude-ls": "~1.1.2" + }, + "engines": { + "node": ">= 0.8.0" + } + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dependencies": { + "is-typedarray": "^1.0.0" + } + }, + "node_modules/union-value": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", + "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", + "dependencies": { + "arr-union": "^3.1.0", + "get-value": "^2.0.6", + "is-extendable": "^0.1.1", + "set-value": "^2.0.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/universalify": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", + "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", + "engines": { + "node": ">= 4.0.0" + } + }, + "node_modules/unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "dependencies": { + "has-value": "^0.3.1", + "isobject": "^3.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "dependencies": { + "get-value": "^2.0.3", + "has-values": "^0.1.4", + "isobject": "^2.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "dependencies": { + "isarray": "1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/unset-value/node_modules/has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, + "node_modules/use": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", + "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "optional": true, + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-to-istanbul": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-7.1.2.tgz", + "integrity": "sha512-TxNb7YEUwkLXCQYeudi6lgQ/SZrzNO4kMdlqVxaZPUIUjCv6iSSypUQX70kNBSERpQ8fk48+d61FXk+tgqcWow==", + "dependencies": { + "@types/istanbul-lib-coverage": "^2.0.1", + "convert-source-map": "^1.6.0", + "source-map": "^0.7.3" + }, + "engines": { + "node": ">=10.10.0" + } + }, + "node_modules/v8-to-istanbul/node_modules/source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "engines": { + "node": ">= 8" + } + }, + "node_modules/validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dependencies": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "node_modules/w3c-hr-time": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", + "integrity": "sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==", + "dependencies": { + "browser-process-hrtime": "^1.0.0" + } + }, + "node_modules/w3c-xmlserializer": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/w3c-xmlserializer/-/w3c-xmlserializer-2.0.0.tgz", + "integrity": "sha512-4tzD0mF8iSiMiNs30BiLO3EpfGLZUT2MSX/G+o7ZywDzliWQ3OPtTZ0PTC3B3ca1UAf4cJMHB+2Bf56EriJuRA==", + "dependencies": { + "xml-name-validator": "^3.0.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/walker": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", + "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", + "dependencies": { + "makeerror": "1.0.x" + } + }, + "node_modules/webidl-conversions": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-6.1.0.tgz", + "integrity": "sha512-qBIvFLGiBpLjfwmYAaHPXsn+ho5xZnGvyGvsarywGNc8VyQJUMHJ8OBKGGrPER0okBeMDaan4mNBlgBROxuI8w==", + "engines": { + "node": ">=10.4" + } + }, + "node_modules/whatwg-encoding": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", + "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", + "dependencies": { + "iconv-lite": "0.4.24" + } + }, + "node_modules/whatwg-mimetype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", + "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==" + }, + "node_modules/whatwg-url": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-8.5.0.tgz", + "integrity": "sha512-fy+R77xWv0AiqfLl4nuGUlQ3/6b5uNfQ4WAbGQVMYshCTCCPK9psC1nWh3XHuxGVCtlcDDQPQW1csmmIQo+fwg==", + "dependencies": { + "lodash": "^4.7.0", + "tr46": "^2.0.2", + "webidl-conversions": "^6.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/which": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/which-module": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", + "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" + }, + "node_modules/word-wrap": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", + "integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "node_modules/write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dependencies": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" + } + }, + "node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + } + }, + "node_modules/xml-name-validator": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", + "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" + }, + "node_modules/xmlchars": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", + "integrity": "sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw==" + }, + "node_modules/y18n": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.3.tgz", + "integrity": "sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ==" + }, + "node_modules/yallist": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + }, + "node_modules/yargs": { + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", + "dependencies": { + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^2.0.0", + "set-blocking": "^2.0.0", + "string-width": "^4.2.0", + "which-module": "^2.0.0", + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/yargs-parser": { + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", + "dependencies": { + "camelcase": "^5.0.0", + "decamelize": "^1.2.0" + }, + "engines": { + "node": ">=6" + } + } + }, "dependencies": { "@babel/code-frame": { "version": "7.12.13",