From 5700fa8e14e5f07ceefe61357a766eaac54c1529 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 6 Feb 2022 03:06:03 +0900 Subject: [PATCH 01/27] solve: everyArray --- Challenge/JM Lim/everyArray/README.md | 9 +++++++++ Challenge/JM Lim/everyArray/solve.js | 8 ++++++++ 2 files changed, 17 insertions(+) create mode 100644 Challenge/JM Lim/everyArray/README.md create mode 100644 Challenge/JM Lim/everyArray/solve.js diff --git a/Challenge/JM Lim/everyArray/README.md b/Challenge/JM Lim/everyArray/README.md new file mode 100644 index 00000000..442558f6 --- /dev/null +++ b/Challenge/JM Lim/everyArray/README.md @@ -0,0 +1,9 @@ +# 문제제목 + +## 설명 + +every를 이용해서 모든 원소가 짝수인지 아닌지를 판별하세요 + +## Expected Output + +true \ No newline at end of file diff --git a/Challenge/JM Lim/everyArray/solve.js b/Challenge/JM Lim/everyArray/solve.js new file mode 100644 index 00000000..c9e8ceb4 --- /dev/null +++ b/Challenge/JM Lim/everyArray/solve.js @@ -0,0 +1,8 @@ +const inputArray = [2, 3, 6, 8, 10]; + +let answer = inputArray.every(item => { + return item % 2 == 0 +}) + +console.log(answer); + From 4ac536df17c3c53c89cabf27492f8616860fa620 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 27 Feb 2022 14:22:06 +0900 Subject: [PATCH 02/27] =?UTF-8?q?=EC=9D=B4=EB=A6=84=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Challenge/{JM Lim => jmjmjm}/everyArray/README.md | 0 Challenge/{JM Lim => jmjmjm}/everyArray/solve.js | 0 Challenge/{JM Lim => jmjmjm}/filterOdd/README.md | 0 Challenge/{JM Lim => jmjmjm}/filterOdd/solve.js | 0 Challenge/{JM Lim => jmjmjm}/forEachFilter/README.md | 0 Challenge/{JM Lim => jmjmjm}/forEachFilter/solve.js | 0 Challenge/{JM Lim => jmjmjm}/forEachFilterIsNaN/README.md | 0 Challenge/{JM Lim => jmjmjm}/forEachFilterIsNaN/solve.js | 0 Challenge/{JM Lim => jmjmjm}/forEachMap/README.md | 0 Challenge/{JM Lim => jmjmjm}/forEachMap/solve.js | 0 Challenge/{JM Lim => jmjmjm}/forEachReduce/README.md | 0 Challenge/{JM Lim => jmjmjm}/forEachReduce/solve.js | 0 12 files changed, 0 insertions(+), 0 deletions(-) rename Challenge/{JM Lim => jmjmjm}/everyArray/README.md (100%) rename Challenge/{JM Lim => jmjmjm}/everyArray/solve.js (100%) rename Challenge/{JM Lim => jmjmjm}/filterOdd/README.md (100%) rename Challenge/{JM Lim => jmjmjm}/filterOdd/solve.js (100%) rename Challenge/{JM Lim => jmjmjm}/forEachFilter/README.md (100%) rename Challenge/{JM Lim => jmjmjm}/forEachFilter/solve.js (100%) rename Challenge/{JM Lim => jmjmjm}/forEachFilterIsNaN/README.md (100%) rename Challenge/{JM Lim => jmjmjm}/forEachFilterIsNaN/solve.js (100%) rename Challenge/{JM Lim => jmjmjm}/forEachMap/README.md (100%) rename Challenge/{JM Lim => jmjmjm}/forEachMap/solve.js (100%) rename Challenge/{JM Lim => jmjmjm}/forEachReduce/README.md (100%) rename Challenge/{JM Lim => jmjmjm}/forEachReduce/solve.js (100%) diff --git a/Challenge/JM Lim/everyArray/README.md b/Challenge/jmjmjm/everyArray/README.md similarity index 100% rename from Challenge/JM Lim/everyArray/README.md rename to Challenge/jmjmjm/everyArray/README.md diff --git a/Challenge/JM Lim/everyArray/solve.js b/Challenge/jmjmjm/everyArray/solve.js similarity index 100% rename from Challenge/JM Lim/everyArray/solve.js rename to Challenge/jmjmjm/everyArray/solve.js diff --git a/Challenge/JM Lim/filterOdd/README.md b/Challenge/jmjmjm/filterOdd/README.md similarity index 100% rename from Challenge/JM Lim/filterOdd/README.md rename to Challenge/jmjmjm/filterOdd/README.md diff --git a/Challenge/JM Lim/filterOdd/solve.js b/Challenge/jmjmjm/filterOdd/solve.js similarity index 100% rename from Challenge/JM Lim/filterOdd/solve.js rename to Challenge/jmjmjm/filterOdd/solve.js diff --git a/Challenge/JM Lim/forEachFilter/README.md b/Challenge/jmjmjm/forEachFilter/README.md similarity index 100% rename from Challenge/JM Lim/forEachFilter/README.md rename to Challenge/jmjmjm/forEachFilter/README.md diff --git a/Challenge/JM Lim/forEachFilter/solve.js b/Challenge/jmjmjm/forEachFilter/solve.js similarity index 100% rename from Challenge/JM Lim/forEachFilter/solve.js rename to Challenge/jmjmjm/forEachFilter/solve.js diff --git a/Challenge/JM Lim/forEachFilterIsNaN/README.md b/Challenge/jmjmjm/forEachFilterIsNaN/README.md similarity index 100% rename from Challenge/JM Lim/forEachFilterIsNaN/README.md rename to Challenge/jmjmjm/forEachFilterIsNaN/README.md diff --git a/Challenge/JM Lim/forEachFilterIsNaN/solve.js b/Challenge/jmjmjm/forEachFilterIsNaN/solve.js similarity index 100% rename from Challenge/JM Lim/forEachFilterIsNaN/solve.js rename to Challenge/jmjmjm/forEachFilterIsNaN/solve.js diff --git a/Challenge/JM Lim/forEachMap/README.md b/Challenge/jmjmjm/forEachMap/README.md similarity index 100% rename from Challenge/JM Lim/forEachMap/README.md rename to Challenge/jmjmjm/forEachMap/README.md diff --git a/Challenge/JM Lim/forEachMap/solve.js b/Challenge/jmjmjm/forEachMap/solve.js similarity index 100% rename from Challenge/JM Lim/forEachMap/solve.js rename to Challenge/jmjmjm/forEachMap/solve.js diff --git a/Challenge/JM Lim/forEachReduce/README.md b/Challenge/jmjmjm/forEachReduce/README.md similarity index 100% rename from Challenge/JM Lim/forEachReduce/README.md rename to Challenge/jmjmjm/forEachReduce/README.md diff --git a/Challenge/JM Lim/forEachReduce/solve.js b/Challenge/jmjmjm/forEachReduce/solve.js similarity index 100% rename from Challenge/JM Lim/forEachReduce/solve.js rename to Challenge/jmjmjm/forEachReduce/solve.js From 2bf264df68d19945bbb9cb02586d4df83012ba2e Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Tue, 1 Mar 2022 01:56:28 +0900 Subject: [PATCH 03/27] =?UTF-8?q?challenge=20=EC=9D=B4=EB=A6=84=20?= =?UTF-8?q?=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Challenge/jmjmjm/expDivOdd/README.md | 3 ++ Challenge/jmjmjm/expDivOdd/solve.js | 24 ++++++++++ Challenge/jmjmjm/expDivOdd/solve.test.js | 21 +++++++++ Challenge/jmjmjm/figureSkating/README.md | 35 ++++++++++++++ Challenge/jmjmjm/figureSkating/solve.js | 18 ++++++++ Challenge/jmjmjm/figureSkating/solve.test.js | 46 +++++++++++++++++++ Challenge/jmjmjm/filterAge/README.md | 3 ++ Challenge/jmjmjm/filterAge/solve.js | 4 ++ Challenge/jmjmjm/filterAge/solve.test.js | 32 +++++++++++++ Challenge/jmjmjm/filterIntersection/README.md | 5 ++ Challenge/jmjmjm/filterIntersection/solve.js | 3 ++ .../jmjmjm/filterIntersection/solve.test.js | 15 ++++++ Challenge/jmjmjm/findWord/README.md | 9 ++++ Challenge/jmjmjm/findWord/solve.js | 4 ++ Challenge/jmjmjm/findWord/solve.test.js | 26 +++++++++++ Challenge/jmjmjm/mapAddPercent/README.md | 3 ++ Challenge/jmjmjm/mapAddPercent/solve.js | 4 ++ Challenge/jmjmjm/mapAddPercent/solve.test.js | 12 +++++ Challenge/jmjmjm/mapAppendOrder/README.md | 3 ++ Challenge/jmjmjm/mapAppendOrder/solve.js | 4 ++ Challenge/jmjmjm/mapAppendOrder/solve.test.js | 16 +++++++ Challenge/jmjmjm/recommendAd/README.md | 15 ++++++ Challenge/jmjmjm/recommendAd/solve.js | 14 ++++++ Challenge/jmjmjm/recommendAd/solve.test.js | 23 ++++++++++ .../jmjmjm/reduceMaxValueNIndex/README.md | 3 ++ .../jmjmjm/reduceMaxValueNIndex/solve.js | 4 ++ .../jmjmjm/reduceMaxValueNIndex/solve.test.js | 28 +++++++++++ Challenge/jmjmjm/reduceNameNickname/README.md | 3 ++ Challenge/jmjmjm/reduceNameNickname/solve.js | 4 ++ .../jmjmjm/reduceNameNickname/solve.test.js | 25 ++++++++++ Challenge/jmjmjm/reduceSum/README.md | 9 ++++ Challenge/jmjmjm/reduceSum/solve.js | 4 ++ Challenge/jmjmjm/reduceSum/solve.test.js | 12 +++++ Challenge/jmjmjm/sortByPrice/README.md | 14 ++++++ Challenge/jmjmjm/sortByPrice/solve.js | 4 ++ Challenge/jmjmjm/sortByPrice/solve.test.js | 34 ++++++++++++++ .../jmjmjm/sortByPriceAndQuantity/README.md | 16 +++++++ .../jmjmjm/sortByPriceAndQuantity/solve.js | 4 ++ .../sortByPriceAndQuantity/solve.test.js | 44 ++++++++++++++++++ .../jmjmjm/spreadOperatorMaxValue/README.md | 3 ++ .../jmjmjm/spreadOperatorMaxValue/solve.js | 4 ++ .../spreadOperatorMaxValue/solve.test.js | 12 +++++ 42 files changed, 569 insertions(+) create mode 100644 Challenge/jmjmjm/expDivOdd/README.md create mode 100644 Challenge/jmjmjm/expDivOdd/solve.js create mode 100644 Challenge/jmjmjm/expDivOdd/solve.test.js create mode 100644 Challenge/jmjmjm/figureSkating/README.md create mode 100644 Challenge/jmjmjm/figureSkating/solve.js create mode 100644 Challenge/jmjmjm/figureSkating/solve.test.js create mode 100644 Challenge/jmjmjm/filterAge/README.md create mode 100644 Challenge/jmjmjm/filterAge/solve.js create mode 100644 Challenge/jmjmjm/filterAge/solve.test.js create mode 100644 Challenge/jmjmjm/filterIntersection/README.md create mode 100644 Challenge/jmjmjm/filterIntersection/solve.js create mode 100644 Challenge/jmjmjm/filterIntersection/solve.test.js create mode 100644 Challenge/jmjmjm/findWord/README.md create mode 100644 Challenge/jmjmjm/findWord/solve.js create mode 100644 Challenge/jmjmjm/findWord/solve.test.js create mode 100644 Challenge/jmjmjm/mapAddPercent/README.md create mode 100644 Challenge/jmjmjm/mapAddPercent/solve.js create mode 100644 Challenge/jmjmjm/mapAddPercent/solve.test.js create mode 100644 Challenge/jmjmjm/mapAppendOrder/README.md create mode 100644 Challenge/jmjmjm/mapAppendOrder/solve.js create mode 100644 Challenge/jmjmjm/mapAppendOrder/solve.test.js create mode 100644 Challenge/jmjmjm/recommendAd/README.md create mode 100644 Challenge/jmjmjm/recommendAd/solve.js create mode 100644 Challenge/jmjmjm/recommendAd/solve.test.js create mode 100644 Challenge/jmjmjm/reduceMaxValueNIndex/README.md create mode 100644 Challenge/jmjmjm/reduceMaxValueNIndex/solve.js create mode 100644 Challenge/jmjmjm/reduceMaxValueNIndex/solve.test.js create mode 100644 Challenge/jmjmjm/reduceNameNickname/README.md create mode 100644 Challenge/jmjmjm/reduceNameNickname/solve.js create mode 100644 Challenge/jmjmjm/reduceNameNickname/solve.test.js create mode 100644 Challenge/jmjmjm/reduceSum/README.md create mode 100644 Challenge/jmjmjm/reduceSum/solve.js create mode 100644 Challenge/jmjmjm/reduceSum/solve.test.js create mode 100644 Challenge/jmjmjm/sortByPrice/README.md create mode 100644 Challenge/jmjmjm/sortByPrice/solve.js create mode 100644 Challenge/jmjmjm/sortByPrice/solve.test.js create mode 100644 Challenge/jmjmjm/sortByPriceAndQuantity/README.md create mode 100644 Challenge/jmjmjm/sortByPriceAndQuantity/solve.js create mode 100644 Challenge/jmjmjm/sortByPriceAndQuantity/solve.test.js create mode 100644 Challenge/jmjmjm/spreadOperatorMaxValue/README.md create mode 100644 Challenge/jmjmjm/spreadOperatorMaxValue/solve.js create mode 100644 Challenge/jmjmjm/spreadOperatorMaxValue/solve.test.js diff --git a/Challenge/jmjmjm/expDivOdd/README.md b/Challenge/jmjmjm/expDivOdd/README.md new file mode 100644 index 00000000..c07ab10b --- /dev/null +++ b/Challenge/jmjmjm/expDivOdd/README.md @@ -0,0 +1,3 @@ +## 설명 + +제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. diff --git a/Challenge/jmjmjm/expDivOdd/solve.js b/Challenge/jmjmjm/expDivOdd/solve.js new file mode 100644 index 00000000..39512ea9 --- /dev/null +++ b/Challenge/jmjmjm/expDivOdd/solve.js @@ -0,0 +1,24 @@ +// 제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. + +// const test1 = { +// input: [1, 7, 3, 4, 6], +// answer: 66, +// }; + +// const test2 = { +// input: [2, 3, 6, 8, 10], +// answer: 168, +// }; + +const inputArray = [2, 3, 6, 8, 10]; + +let answer = inputArray.reduce((acc, cur) => { + + let arr = (cur * cur) % 3; + console.log(arr); + // console.log(cur); +}, 0) + +// console.log(answer); + + diff --git a/Challenge/jmjmjm/expDivOdd/solve.test.js b/Challenge/jmjmjm/expDivOdd/solve.test.js new file mode 100644 index 00000000..ca37fcc3 --- /dev/null +++ b/Challenge/jmjmjm/expDivOdd/solve.test.js @@ -0,0 +1,21 @@ +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/jmjmjm/figureSkating/README.md b/Challenge/jmjmjm/figureSkating/README.md new file mode 100644 index 00000000..54b85fbd --- /dev/null +++ b/Challenge/jmjmjm/figureSkating/README.md @@ -0,0 +1,35 @@ +## 설명 + +점수를 계산해서 점수가 높은 순으로 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/jmjmjm/figureSkating/solve.js b/Challenge/jmjmjm/figureSkating/solve.js new file mode 100644 index 00000000..fc0d9664 --- /dev/null +++ b/Challenge/jmjmjm/figureSkating/solve.js @@ -0,0 +1,18 @@ +// 기본 점수 +const baseScore = { + jump: 10, + spin: 20, + step: 15, +}; + +const baseAssignment = { + jump: 3, + spin: 3, + step: 1, +}; + +// write your codes + +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/figureSkating/solve.test.js b/Challenge/jmjmjm/figureSkating/solve.test.js new file mode 100644 index 00000000..7bceadf1 --- /dev/null +++ b/Challenge/jmjmjm/figureSkating/solve.test.js @@ -0,0 +1,46 @@ +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/jmjmjm/filterAge/README.md b/Challenge/jmjmjm/filterAge/README.md new file mode 100644 index 00000000..873a15c1 --- /dev/null +++ b/Challenge/jmjmjm/filterAge/README.md @@ -0,0 +1,3 @@ +## 설명 + +배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 diff --git a/Challenge/jmjmjm/filterAge/solve.js b/Challenge/jmjmjm/filterAge/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/filterAge/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/filterAge/solve.test.js b/Challenge/jmjmjm/filterAge/solve.test.js new file mode 100644 index 00000000..b9081601 --- /dev/null +++ b/Challenge/jmjmjm/filterAge/solve.test.js @@ -0,0 +1,32 @@ +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/jmjmjm/filterIntersection/README.md b/Challenge/jmjmjm/filterIntersection/README.md new file mode 100644 index 00000000..d7c9ad39 --- /dev/null +++ b/Challenge/jmjmjm/filterIntersection/README.md @@ -0,0 +1,5 @@ +# 문제제목 + +## 설명 + +두 배열의 교집합을 출력하세요! diff --git a/Challenge/jmjmjm/filterIntersection/solve.js b/Challenge/jmjmjm/filterIntersection/solve.js new file mode 100644 index 00000000..9bc832f1 --- /dev/null +++ b/Challenge/jmjmjm/filterIntersection/solve.js @@ -0,0 +1,3 @@ +function solution(inputArray1, inputArray2) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/filterIntersection/solve.test.js b/Challenge/jmjmjm/filterIntersection/solve.test.js new file mode 100644 index 00000000..576cbc86 --- /dev/null +++ b/Challenge/jmjmjm/filterIntersection/solve.test.js @@ -0,0 +1,15 @@ +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/jmjmjm/findWord/README.md b/Challenge/jmjmjm/findWord/README.md new file mode 100644 index 00000000..8ef123f4 --- /dev/null +++ b/Challenge/jmjmjm/findWord/README.md @@ -0,0 +1,9 @@ +# 문제제목 + +## 설명 + +용가리라는 단어가 있으면 true 없으면 false를 출력 + +## Expected Output + +true diff --git a/Challenge/jmjmjm/findWord/solve.js b/Challenge/jmjmjm/findWord/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/findWord/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/findWord/solve.test.js b/Challenge/jmjmjm/findWord/solve.test.js new file mode 100644 index 00000000..804114f6 --- /dev/null +++ b/Challenge/jmjmjm/findWord/solve.test.js @@ -0,0 +1,26 @@ +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/jmjmjm/mapAddPercent/README.md b/Challenge/jmjmjm/mapAddPercent/README.md new file mode 100644 index 00000000..75e73042 --- /dev/null +++ b/Challenge/jmjmjm/mapAddPercent/README.md @@ -0,0 +1,3 @@ +## 설명 + +map 메소드를 사용해 배열 각각 숫자 뒤에 %를 붙인 문자열을 만드세요 diff --git a/Challenge/jmjmjm/mapAddPercent/solve.js b/Challenge/jmjmjm/mapAddPercent/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/mapAddPercent/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/mapAddPercent/solve.test.js b/Challenge/jmjmjm/mapAddPercent/solve.test.js new file mode 100644 index 00000000..dac1b3cc --- /dev/null +++ b/Challenge/jmjmjm/mapAddPercent/solve.test.js @@ -0,0 +1,12 @@ +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/jmjmjm/mapAppendOrder/README.md b/Challenge/jmjmjm/mapAppendOrder/README.md new file mode 100644 index 00000000..1435623a --- /dev/null +++ b/Challenge/jmjmjm/mapAppendOrder/README.md @@ -0,0 +1,3 @@ +## 설명 + +배열의 값을 name 프로퍼티에 넣고 몇번째 원소인지를 order에 넣은 객체의 배열을 출력하세요 diff --git a/Challenge/jmjmjm/mapAppendOrder/solve.js b/Challenge/jmjmjm/mapAppendOrder/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/mapAppendOrder/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/mapAppendOrder/solve.test.js b/Challenge/jmjmjm/mapAppendOrder/solve.test.js new file mode 100644 index 00000000..e08db10c --- /dev/null +++ b/Challenge/jmjmjm/mapAppendOrder/solve.test.js @@ -0,0 +1,16 @@ +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/jmjmjm/recommendAd/README.md b/Challenge/jmjmjm/recommendAd/README.md new file mode 100644 index 00000000..132e8800 --- /dev/null +++ b/Challenge/jmjmjm/recommendAd/README.md @@ -0,0 +1,15 @@ +# 문제제목 + +사용자가 안 본 광고는? + +## 설명 + +유튜브는 사용자가 프리미엄 회원이 아닌 경우 영상 시작이나 중간에 광고가 나오도록 설정되어 있습니다. + +[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/jmjmjm/recommendAd/solve.js b/Challenge/jmjmjm/recommendAd/solve.js new file mode 100644 index 00000000..8dfadee5 --- /dev/null +++ b/Challenge/jmjmjm/recommendAd/solve.js @@ -0,0 +1,14 @@ +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) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/recommendAd/solve.test.js b/Challenge/jmjmjm/recommendAd/solve.test.js new file mode 100644 index 00000000..8a0f6464 --- /dev/null +++ b/Challenge/jmjmjm/recommendAd/solve.test.js @@ -0,0 +1,23 @@ +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/jmjmjm/reduceMaxValueNIndex/README.md b/Challenge/jmjmjm/reduceMaxValueNIndex/README.md new file mode 100644 index 00000000..965bdec6 --- /dev/null +++ b/Challenge/jmjmjm/reduceMaxValueNIndex/README.md @@ -0,0 +1,3 @@ +## 설명 + +reduce 메소드를 사용해 최댓값의 값을 maxValue에, 해당 값의 index를 idx에 넣은 객체를 출력하세요 diff --git a/Challenge/jmjmjm/reduceMaxValueNIndex/solve.js b/Challenge/jmjmjm/reduceMaxValueNIndex/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/reduceMaxValueNIndex/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/reduceMaxValueNIndex/solve.test.js b/Challenge/jmjmjm/reduceMaxValueNIndex/solve.test.js new file mode 100644 index 00000000..0daef5b8 --- /dev/null +++ b/Challenge/jmjmjm/reduceMaxValueNIndex/solve.test.js @@ -0,0 +1,28 @@ +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/jmjmjm/reduceNameNickname/README.md b/Challenge/jmjmjm/reduceNameNickname/README.md new file mode 100644 index 00000000..b6920e05 --- /dev/null +++ b/Challenge/jmjmjm/reduceNameNickname/README.md @@ -0,0 +1,3 @@ +## 설명 + +입력받은 객채배열의 nickname을 key, name을 value로 하는 객체를 출력하세요 diff --git a/Challenge/jmjmjm/reduceNameNickname/solve.js b/Challenge/jmjmjm/reduceNameNickname/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/reduceNameNickname/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/reduceNameNickname/solve.test.js b/Challenge/jmjmjm/reduceNameNickname/solve.test.js new file mode 100644 index 00000000..67b74529 --- /dev/null +++ b/Challenge/jmjmjm/reduceNameNickname/solve.test.js @@ -0,0 +1,25 @@ +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/jmjmjm/reduceSum/README.md b/Challenge/jmjmjm/reduceSum/README.md new file mode 100644 index 00000000..8c607eb2 --- /dev/null +++ b/Challenge/jmjmjm/reduceSum/README.md @@ -0,0 +1,9 @@ +# 문제제목 + +## 설명 + +reduce 메소드를 사용해서 배열의 모든 수의 합을 구하세요. + +## Expected Output + +106 diff --git a/Challenge/jmjmjm/reduceSum/solve.js b/Challenge/jmjmjm/reduceSum/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/reduceSum/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/reduceSum/solve.test.js b/Challenge/jmjmjm/reduceSum/solve.test.js new file mode 100644 index 00000000..046c40cb --- /dev/null +++ b/Challenge/jmjmjm/reduceSum/solve.test.js @@ -0,0 +1,12 @@ +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/jmjmjm/sortByPrice/README.md b/Challenge/jmjmjm/sortByPrice/README.md new file mode 100644 index 00000000..b1ccf70e --- /dev/null +++ b/Challenge/jmjmjm/sortByPrice/README.md @@ -0,0 +1,14 @@ +# 문제제목 + +## 설명 + +배열안의 객체를 price를 기준으로 오름차순 정렬한 배열을 출력하세요 + +## Expected Output + +[ + { name: '사과', price: 1000 }, + { name: '당근', price: 2000 }, + { name: '수박', price: 5000 }, + { name: '참외', price: 10000 } +] diff --git a/Challenge/jmjmjm/sortByPrice/solve.js b/Challenge/jmjmjm/sortByPrice/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/sortByPrice/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/sortByPrice/solve.test.js b/Challenge/jmjmjm/sortByPrice/solve.test.js new file mode 100644 index 00000000..3d6a3431 --- /dev/null +++ b/Challenge/jmjmjm/sortByPrice/solve.test.js @@ -0,0 +1,34 @@ +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/jmjmjm/sortByPriceAndQuantity/README.md b/Challenge/jmjmjm/sortByPriceAndQuantity/README.md new file mode 100644 index 00000000..41cd5c95 --- /dev/null +++ b/Challenge/jmjmjm/sortByPriceAndQuantity/README.md @@ -0,0 +1,16 @@ +# 문제제목 + +## 설명 + +배열안의 객체를 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/jmjmjm/sortByPriceAndQuantity/solve.js b/Challenge/jmjmjm/sortByPriceAndQuantity/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/sortByPriceAndQuantity/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/sortByPriceAndQuantity/solve.test.js b/Challenge/jmjmjm/sortByPriceAndQuantity/solve.test.js new file mode 100644 index 00000000..424f42b7 --- /dev/null +++ b/Challenge/jmjmjm/sortByPriceAndQuantity/solve.test.js @@ -0,0 +1,44 @@ +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/jmjmjm/spreadOperatorMaxValue/README.md b/Challenge/jmjmjm/spreadOperatorMaxValue/README.md new file mode 100644 index 00000000..164b68a1 --- /dev/null +++ b/Challenge/jmjmjm/spreadOperatorMaxValue/README.md @@ -0,0 +1,3 @@ +## 설명 + +Spread Operator를 이용해서 값의 최대, 최소값을 구하세요 diff --git a/Challenge/jmjmjm/spreadOperatorMaxValue/solve.js b/Challenge/jmjmjm/spreadOperatorMaxValue/solve.js new file mode 100644 index 00000000..36baa9f8 --- /dev/null +++ b/Challenge/jmjmjm/spreadOperatorMaxValue/solve.js @@ -0,0 +1,4 @@ +// write your codes +function solution(inputArray) {} + +exports.solution = solution; diff --git a/Challenge/jmjmjm/spreadOperatorMaxValue/solve.test.js b/Challenge/jmjmjm/spreadOperatorMaxValue/solve.test.js new file mode 100644 index 00000000..26f2abf9 --- /dev/null +++ b/Challenge/jmjmjm/spreadOperatorMaxValue/solve.test.js @@ -0,0 +1,12 @@ +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); + }); +}); From ba6a7a24f1a500cdde9240aa6c5badee5f936774 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 4 Mar 2022 00:02:27 +0900 Subject: [PATCH 04/27] solve: expDivOdd --- Challenge/jmjmjm/expDivOdd/solve.js | 22 ++++++++++------------ Challenge/jmjmjm/expDivOdd/solve.test.js | 21 --------------------- 2 files changed, 10 insertions(+), 33 deletions(-) delete mode 100644 Challenge/jmjmjm/expDivOdd/solve.test.js diff --git a/Challenge/jmjmjm/expDivOdd/solve.js b/Challenge/jmjmjm/expDivOdd/solve.js index 39512ea9..1baabe5a 100644 --- a/Challenge/jmjmjm/expDivOdd/solve.js +++ b/Challenge/jmjmjm/expDivOdd/solve.js @@ -10,15 +10,13 @@ // answer: 168, // }; -const inputArray = [2, 3, 6, 8, 10]; - -let answer = inputArray.reduce((acc, cur) => { - - let arr = (cur * cur) % 3; - console.log(arr); - // console.log(cur); -}, 0) - -// console.log(answer); - - +// const inputArray = [2, 3, 6, 8, 10]; +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; \ No newline at end of file diff --git a/Challenge/jmjmjm/expDivOdd/solve.test.js b/Challenge/jmjmjm/expDivOdd/solve.test.js deleted file mode 100644 index ca37fcc3..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From 81ae830cbc5ed5ee3d10cd573edc08f42a9021be Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 4 Mar 2022 23:43:57 +0900 Subject: [PATCH 05/27] solve: expDivOdd --- Challenge/jmjmjm/expDivOdd/solve.js | 28 ++++++++-------------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/Challenge/jmjmjm/expDivOdd/solve.js b/Challenge/jmjmjm/expDivOdd/solve.js index 1baabe5a..a2a26b86 100644 --- a/Challenge/jmjmjm/expDivOdd/solve.js +++ b/Challenge/jmjmjm/expDivOdd/solve.js @@ -1,22 +1,10 @@ // 제곱한 후 3으로 나눈 나머지가 홀수인 것 을 뽑은 배열의 총 합을 구하세요. -// const test1 = { -// input: [1, 7, 3, 4, 6], -// answer: 66, -// }; - -// const test2 = { -// input: [2, 3, 6, 8, 10], -// answer: 168, -// }; - -// const inputArray = [2, 3, 6, 8, 10]; -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; \ No newline at end of file +const inputArray = [2, 3, 6, 8, 10]; + +let answer = inputArray.map(e => e ** 2) + .filter(e => e%3 == 1) + .reduce((acc, cur) => { + return acc + cur + }, 0); +console.log(answer); \ No newline at end of file From 256ca149aee07b5b7ce037f95b80c4936ed4c99a Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sat, 5 Mar 2022 01:46:13 +0900 Subject: [PATCH 06/27] solve: filterAge --- Challenge/jmjmjm/filterAge/solve.js | 19 ++++++++++++-- Challenge/jmjmjm/filterAge/solve.test.js | 32 ------------------------ 2 files changed, 17 insertions(+), 34 deletions(-) delete mode 100644 Challenge/jmjmjm/filterAge/solve.test.js diff --git a/Challenge/jmjmjm/filterAge/solve.js b/Challenge/jmjmjm/filterAge/solve.js index 36baa9f8..6305168c 100644 --- a/Challenge/jmjmjm/filterAge/solve.js +++ b/Challenge/jmjmjm/filterAge/solve.js @@ -1,4 +1,19 @@ +// 배열 원소의 age가 30이상 50미만인 사람만 있는 객체의 배열을 만드세요 // write your codes -function solution(inputArray) {} -exports.solution = solution; +const inputArray = [ + {name: '재만', age: 36}, + {name: '준호', age: 30}, + {name: '영희', age: 28}, + {name: '은혜', age: 45}, + {name: '영수', age: 55} +]; + +let answer = inputArray.filter(e => e.age >= 30 && e.age < 50) + .sort(function(a, b) { + if (a.age > b.age) return 1; + if (a.age == b.age) return 0; + if (a.age < b.age) return -1; + }) + +console.log(answer); diff --git a/Challenge/jmjmjm/filterAge/solve.test.js b/Challenge/jmjmjm/filterAge/solve.test.js deleted file mode 100644 index b9081601..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From 461bb0a577bcf02b203a61cea2699de5a83745ca Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Thu, 10 Mar 2022 22:02:49 +0900 Subject: [PATCH 07/27] solve: everyArray --- Challenge/jmjmjm/everyArray/solve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/everyArray/solve.js b/Challenge/jmjmjm/everyArray/solve.js index c9e8ceb4..9b97d897 100644 --- a/Challenge/jmjmjm/everyArray/solve.js +++ b/Challenge/jmjmjm/everyArray/solve.js @@ -1,7 +1,7 @@ const inputArray = [2, 3, 6, 8, 10]; let answer = inputArray.every(item => { - return item % 2 == 0 + return item % 2 == 0; }) console.log(answer); From d8d912153e3f840505f89abbdfec030dd3157f3a Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 02:22:52 +0900 Subject: [PATCH 08/27] solve: filterIntersection --- Challenge/jmjmjm/filterIntersection/solve.js | 9 +++++++-- Challenge/jmjmjm/filterIntersection/solve.test.js | 15 --------------- 2 files changed, 7 insertions(+), 17 deletions(-) delete mode 100644 Challenge/jmjmjm/filterIntersection/solve.test.js diff --git a/Challenge/jmjmjm/filterIntersection/solve.js b/Challenge/jmjmjm/filterIntersection/solve.js index 9bc832f1..6f07c8a3 100644 --- a/Challenge/jmjmjm/filterIntersection/solve.js +++ b/Challenge/jmjmjm/filterIntersection/solve.js @@ -1,3 +1,8 @@ -function solution(inputArray1, inputArray2) {} +const tempA = [1, 2, 3, 4, 5]; +const tempB = [3, 4, 5, 6, 7]; + +const answer = tempA.filter(e => tempB.includes(e)); + +console.log(answer); + -exports.solution = solution; diff --git a/Challenge/jmjmjm/filterIntersection/solve.test.js b/Challenge/jmjmjm/filterIntersection/solve.test.js deleted file mode 100644 index 576cbc86..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From 3c21fb5d0bcebfec7a624057e77c2534045a7cbd Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 02:23:49 +0900 Subject: [PATCH 09/27] solve: filterOdd --- Challenge/jmjmjm/filterOdd/solve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/filterOdd/solve.js b/Challenge/jmjmjm/filterOdd/solve.js index a6895962..f8c9d11d 100644 --- a/Challenge/jmjmjm/filterOdd/solve.js +++ b/Challenge/jmjmjm/filterOdd/solve.js @@ -2,6 +2,6 @@ const inputArray = [1, 5, 6, 7 ,9, 3, 14]; const answer = inputArray.filter(e => { return (e%2) == 1 -}) +}); console.log(answer); \ No newline at end of file From bef44d8b3a29354be477cb7a013dd57d42cd14a8 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 02:24:53 +0900 Subject: [PATCH 10/27] solve: forEachFilter --- Challenge/jmjmjm/forEachFilter/solve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/forEachFilter/solve.js b/Challenge/jmjmjm/forEachFilter/solve.js index a8f983fc..43822b1d 100644 --- a/Challenge/jmjmjm/forEachFilter/solve.js +++ b/Challenge/jmjmjm/forEachFilter/solve.js @@ -4,6 +4,6 @@ const answer = []; inputArray.forEach(e => { e >= 40 ? answer.push(e) : '' -}) +}); console.log(answer); \ No newline at end of file From c90c7b1c772d3d2bad2b9a21c60e3f17e9eb5403 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 02:25:18 +0900 Subject: [PATCH 11/27] solve: forEachFilterIsNaN --- Challenge/jmjmjm/forEachFilterIsNaN/solve.js | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/forEachFilterIsNaN/solve.js b/Challenge/jmjmjm/forEachFilterIsNaN/solve.js index 72205624..8ba2517d 100644 --- a/Challenge/jmjmjm/forEachFilterIsNaN/solve.js +++ b/Challenge/jmjmjm/forEachFilterIsNaN/solve.js @@ -6,6 +6,7 @@ inputArray.forEach(e => { if (Number.isInteger(e)) { answer.push(e) } -}) +}); + console.log(answer); From 664b80083592a1b12ca6ac1fb667e30324a126e4 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 02:25:41 +0900 Subject: [PATCH 12/27] solve: forEachMap --- Challenge/jmjmjm/forEachMap/solve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/forEachMap/solve.js b/Challenge/jmjmjm/forEachMap/solve.js index 09fc7b9c..c47424d5 100644 --- a/Challenge/jmjmjm/forEachMap/solve.js +++ b/Challenge/jmjmjm/forEachMap/solve.js @@ -5,6 +5,6 @@ const answer = []; inputArray.forEach(e => { let val = e+''; answer.push(val.concat('%')) -}) +}); console.log(answer); \ No newline at end of file From f027a28a7b88f78f61cb5742ecc1e8b56fe52449 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 02:26:06 +0900 Subject: [PATCH 13/27] solve: forEachReduce --- Challenge/jmjmjm/forEachReduce/solve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/forEachReduce/solve.js b/Challenge/jmjmjm/forEachReduce/solve.js index 41d75ad5..2e49b6c0 100644 --- a/Challenge/jmjmjm/forEachReduce/solve.js +++ b/Challenge/jmjmjm/forEachReduce/solve.js @@ -4,6 +4,6 @@ let answer = ''; answer = inputArray.reduce((a, c) => { return a+c -}, 0) +}, 0); console.log(answer); From e52446ade58c15473b34bf921f3cda9892edc2c1 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 02:30:01 +0900 Subject: [PATCH 14/27] solve: findWord --- Challenge/jmjmjm/findWord/solve.js | 20 ++++++++++++++++--- Challenge/jmjmjm/findWord/solve.test.js | 26 ------------------------- 2 files changed, 17 insertions(+), 29 deletions(-) delete mode 100644 Challenge/jmjmjm/findWord/solve.test.js diff --git a/Challenge/jmjmjm/findWord/solve.js b/Challenge/jmjmjm/findWord/solve.js index 36baa9f8..db7c56c6 100644 --- a/Challenge/jmjmjm/findWord/solve.js +++ b/Challenge/jmjmjm/findWord/solve.js @@ -1,4 +1,18 @@ -// write your codes -function solution(inputArray) {} +// const test1 = { +// input: ['잠', '자', '고', '싶', '다', '용가리'], +// answer: true, +// }; +// const test2 = { +// input: ['맛있는', '용가리치킨'], +// answer: false, +// }; +// const test3 = { +// input: ['고질라', '용가리 ', '울트라맨'], +// answer: false, +// }; -exports.solution = solution; +const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; + +let answer = inputArray.includes('용가리'); + +console.log(answer); \ No newline at end of file diff --git a/Challenge/jmjmjm/findWord/solve.test.js b/Challenge/jmjmjm/findWord/solve.test.js deleted file mode 100644 index 804114f6..00000000 --- a/Challenge/jmjmjm/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 From cffd7732f9bad4a49a3f55883a9baa582c2a3f48 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Fri, 11 Mar 2022 03:02:25 +0900 Subject: [PATCH 15/27] solve: mapAddPercent --- Challenge/jmjmjm/mapAddPercent/solve.js | 13 ++++++++++--- Challenge/jmjmjm/mapAddPercent/solve.test.js | 12 ------------ 2 files changed, 10 insertions(+), 15 deletions(-) delete mode 100644 Challenge/jmjmjm/mapAddPercent/solve.test.js diff --git a/Challenge/jmjmjm/mapAddPercent/solve.js b/Challenge/jmjmjm/mapAddPercent/solve.js index 36baa9f8..1569b64e 100644 --- a/Challenge/jmjmjm/mapAddPercent/solve.js +++ b/Challenge/jmjmjm/mapAddPercent/solve.js @@ -1,4 +1,11 @@ -// write your codes -function solution(inputArray) {} +// const test1 = { +// input: [100, 10, 20, 40], +// answer: ['100%', '10%', '20%', '40%'], +// }; -exports.solution = solution; + +const inputArray = [100, 10, 20, 40]; + +const answer = inputArray.map(e => e+'%'); + +console.log(answer); diff --git a/Challenge/jmjmjm/mapAddPercent/solve.test.js b/Challenge/jmjmjm/mapAddPercent/solve.test.js deleted file mode 100644 index dac1b3cc..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From ced5882fc7068b3ecf7735695dcabe3e03b6856c Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sat, 12 Mar 2022 02:24:06 +0900 Subject: [PATCH 16/27] solve: mapAppendOrder --- Challenge/jmjmjm/mapAppendOrder/solve.js | 20 ++++++++++++++++--- Challenge/jmjmjm/mapAppendOrder/solve.test.js | 16 --------------- 2 files changed, 17 insertions(+), 19 deletions(-) delete mode 100644 Challenge/jmjmjm/mapAppendOrder/solve.test.js diff --git a/Challenge/jmjmjm/mapAppendOrder/solve.js b/Challenge/jmjmjm/mapAppendOrder/solve.js index 36baa9f8..f84651c3 100644 --- a/Challenge/jmjmjm/mapAppendOrder/solve.js +++ b/Challenge/jmjmjm/mapAppendOrder/solve.js @@ -1,4 +1,18 @@ -// write your codes -function solution(inputArray) {} +// const test1 = { +// input: ['홍길동', '둘리', '루피'], +// answer: [ +// { name: '홍길동', order: 1 }, +// { name: '둘리', order: 2 }, +// { name: '루피', order: 3 }, +// ], +// }; + +const inputArray = ['홍길동', '둘리', '루피']; + +const answer = inputArray.map((el, idx) => { + return { + name: el, + order: idx+1 + } +}); -exports.solution = solution; diff --git a/Challenge/jmjmjm/mapAppendOrder/solve.test.js b/Challenge/jmjmjm/mapAppendOrder/solve.test.js deleted file mode 100644 index e08db10c..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From 69dc828df411d88876eaa32b7183464b7dcc4f06 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sat, 12 Mar 2022 02:52:45 +0900 Subject: [PATCH 17/27] solve: recommendAd --- Challenge/jmjmjm/recommendAd/solve.js | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/Challenge/jmjmjm/recommendAd/solve.js b/Challenge/jmjmjm/recommendAd/solve.js index 8dfadee5..2707a403 100644 --- a/Challenge/jmjmjm/recommendAd/solve.js +++ b/Challenge/jmjmjm/recommendAd/solve.js @@ -8,7 +8,10 @@ const userHistory = [ { date: '2020-11-09', watched: ['KT', '그랑사가', '빙그레'] }, ]; -// write your codes -function solution(inputArray) {} +const advList = [ '동원F&B', '정관장', 'KT', 'BBQ', '그랑사가', '농심', '딱좋은데이', '빙그레', '쌍용자동차', '켈로그코리아' ]; -exports.solution = solution; +// const answer = userHistory.watched.forEach(e => { +// console.log(e); +// }) + +console.log(userHistory.length); \ No newline at end of file From 13f9106cf346070c755bf93e2ff425e5ee34d307 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sat, 12 Mar 2022 03:16:04 +0900 Subject: [PATCH 18/27] solve: recommendAd --- Challenge/jmjmjm/recommendAd/solve.js | 8 ++++---- Challenge/jmjmjm/recommendAd/solve.test.js | 23 ---------------------- 2 files changed, 4 insertions(+), 27 deletions(-) delete mode 100644 Challenge/jmjmjm/recommendAd/solve.test.js diff --git a/Challenge/jmjmjm/recommendAd/solve.js b/Challenge/jmjmjm/recommendAd/solve.js index 2707a403..7cbf41c0 100644 --- a/Challenge/jmjmjm/recommendAd/solve.js +++ b/Challenge/jmjmjm/recommendAd/solve.js @@ -9,9 +9,9 @@ const userHistory = [ ]; const advList = [ '동원F&B', '정관장', 'KT', 'BBQ', '그랑사가', '농심', '딱좋은데이', '빙그레', '쌍용자동차', '켈로그코리아' ]; +let allAdv = []; -// const answer = userHistory.watched.forEach(e => { -// console.log(e); -// }) +userHistory.forEach(el => allAdv.push(...el.watched)); +const answer = advList.filter(e => !allAdv.includes(e)); -console.log(userHistory.length); \ No newline at end of file +console.log(answer); diff --git a/Challenge/jmjmjm/recommendAd/solve.test.js b/Challenge/jmjmjm/recommendAd/solve.test.js deleted file mode 100644 index 8a0f6464..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From 857e1652e6beb7ca9495a97e4eb87a0e51fbdddc Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 13 Mar 2022 02:48:39 +0900 Subject: [PATCH 19/27] expDivOd --- .../jmjmjm/reduceMaxValueNIndex/solve.test.js | 28 ------------ .../jmjmjm/reduceNameNickname/solve.test.js | 25 ----------- Challenge/jmjmjm/reduceSum/solve.test.js | 12 ----- Challenge/jmjmjm/sortByPrice/solve.test.js | 34 -------------- .../sortByPriceAndQuantity/solve.test.js | 44 ------------------- .../spreadOperatorMaxValue/solve.test.js | 12 ----- 6 files changed, 155 deletions(-) delete mode 100644 Challenge/jmjmjm/reduceMaxValueNIndex/solve.test.js delete mode 100644 Challenge/jmjmjm/reduceNameNickname/solve.test.js delete mode 100644 Challenge/jmjmjm/reduceSum/solve.test.js delete mode 100644 Challenge/jmjmjm/sortByPrice/solve.test.js delete mode 100644 Challenge/jmjmjm/sortByPriceAndQuantity/solve.test.js delete mode 100644 Challenge/jmjmjm/spreadOperatorMaxValue/solve.test.js diff --git a/Challenge/jmjmjm/reduceMaxValueNIndex/solve.test.js b/Challenge/jmjmjm/reduceMaxValueNIndex/solve.test.js deleted file mode 100644 index 0daef5b8..00000000 --- a/Challenge/jmjmjm/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/jmjmjm/reduceNameNickname/solve.test.js b/Challenge/jmjmjm/reduceNameNickname/solve.test.js deleted file mode 100644 index 67b74529..00000000 --- a/Challenge/jmjmjm/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/jmjmjm/reduceSum/solve.test.js b/Challenge/jmjmjm/reduceSum/solve.test.js deleted file mode 100644 index 046c40cb..00000000 --- a/Challenge/jmjmjm/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/jmjmjm/sortByPrice/solve.test.js b/Challenge/jmjmjm/sortByPrice/solve.test.js deleted file mode 100644 index 3d6a3431..00000000 --- a/Challenge/jmjmjm/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/jmjmjm/sortByPriceAndQuantity/solve.test.js b/Challenge/jmjmjm/sortByPriceAndQuantity/solve.test.js deleted file mode 100644 index 424f42b7..00000000 --- a/Challenge/jmjmjm/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/jmjmjm/spreadOperatorMaxValue/solve.test.js b/Challenge/jmjmjm/spreadOperatorMaxValue/solve.test.js deleted file mode 100644 index 26f2abf9..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From 751a22dc08222f304512e753e5a74be1e5ec5314 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 13 Mar 2022 17:45:27 +0900 Subject: [PATCH 20/27] solve: findWord --- Challenge/jmjmjm/findWord/solve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/findWord/solve.js b/Challenge/jmjmjm/findWord/solve.js index db7c56c6..2354746e 100644 --- a/Challenge/jmjmjm/findWord/solve.js +++ b/Challenge/jmjmjm/findWord/solve.js @@ -13,6 +13,6 @@ const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; -let answer = inputArray.includes('용가리'); +const answer = inputArray.includes('용가리'); console.log(answer); \ No newline at end of file From 064f23ab579ca617a2b18d01cc98a471c5f7e5ce Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 13 Mar 2022 18:15:08 +0900 Subject: [PATCH 21/27] =?UTF-8?q?=EC=A3=BC=EC=84=9D=20=EC=A0=9C=EA=B1=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Challenge/jmjmjm/expDivOdd/solve.js | 1 + Challenge/jmjmjm/findWord/solve.js | 13 ------------- Challenge/jmjmjm/mapAddPercent/solve.js | 6 ------ Challenge/jmjmjm/mapAppendOrder/solve.js | 9 --------- Challenge/jmjmjm/recommendAd/solve.js | 2 +- 5 files changed, 2 insertions(+), 29 deletions(-) diff --git a/Challenge/jmjmjm/expDivOdd/solve.js b/Challenge/jmjmjm/expDivOdd/solve.js index a2a26b86..b397fad8 100644 --- a/Challenge/jmjmjm/expDivOdd/solve.js +++ b/Challenge/jmjmjm/expDivOdd/solve.js @@ -7,4 +7,5 @@ let answer = inputArray.map(e => e ** 2) .reduce((acc, cur) => { return acc + cur }, 0); + console.log(answer); \ No newline at end of file diff --git a/Challenge/jmjmjm/findWord/solve.js b/Challenge/jmjmjm/findWord/solve.js index 2354746e..ef8c747f 100644 --- a/Challenge/jmjmjm/findWord/solve.js +++ b/Challenge/jmjmjm/findWord/solve.js @@ -1,16 +1,3 @@ -// const test1 = { -// input: ['잠', '자', '고', '싶', '다', '용가리'], -// answer: true, -// }; -// const test2 = { -// input: ['맛있는', '용가리치킨'], -// answer: false, -// }; -// const test3 = { -// input: ['고질라', '용가리 ', '울트라맨'], -// answer: false, -// }; - const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; const answer = inputArray.includes('용가리'); diff --git a/Challenge/jmjmjm/mapAddPercent/solve.js b/Challenge/jmjmjm/mapAddPercent/solve.js index 1569b64e..13e45b1e 100644 --- a/Challenge/jmjmjm/mapAddPercent/solve.js +++ b/Challenge/jmjmjm/mapAddPercent/solve.js @@ -1,9 +1,3 @@ -// const test1 = { -// input: [100, 10, 20, 40], -// answer: ['100%', '10%', '20%', '40%'], -// }; - - const inputArray = [100, 10, 20, 40]; const answer = inputArray.map(e => e+'%'); diff --git a/Challenge/jmjmjm/mapAppendOrder/solve.js b/Challenge/jmjmjm/mapAppendOrder/solve.js index f84651c3..279e6e5d 100644 --- a/Challenge/jmjmjm/mapAppendOrder/solve.js +++ b/Challenge/jmjmjm/mapAppendOrder/solve.js @@ -1,12 +1,3 @@ -// const test1 = { -// input: ['홍길동', '둘리', '루피'], -// answer: [ -// { name: '홍길동', order: 1 }, -// { name: '둘리', order: 2 }, -// { name: '루피', order: 3 }, -// ], -// }; - const inputArray = ['홍길동', '둘리', '루피']; const answer = inputArray.map((el, idx) => { diff --git a/Challenge/jmjmjm/recommendAd/solve.js b/Challenge/jmjmjm/recommendAd/solve.js index 7cbf41c0..c563baab 100644 --- a/Challenge/jmjmjm/recommendAd/solve.js +++ b/Challenge/jmjmjm/recommendAd/solve.js @@ -14,4 +14,4 @@ let allAdv = []; userHistory.forEach(el => allAdv.push(...el.watched)); const answer = advList.filter(e => !allAdv.includes(e)); -console.log(answer); +console.log(answer); \ No newline at end of file From e773507bc228e12488359d56eb9219c0e07df540 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 20 Mar 2022 17:43:08 +0900 Subject: [PATCH 22/27] solve: figureSkating --- Challenge/jmjmjm/figureSkating/solve.js | 75 +++++++++++++++++++- Challenge/jmjmjm/figureSkating/solve.test.js | 46 ------------ 2 files changed, 72 insertions(+), 49 deletions(-) delete mode 100644 Challenge/jmjmjm/figureSkating/solve.test.js diff --git a/Challenge/jmjmjm/figureSkating/solve.js b/Challenge/jmjmjm/figureSkating/solve.js index fc0d9664..3b16aa19 100644 --- a/Challenge/jmjmjm/figureSkating/solve.js +++ b/Challenge/jmjmjm/figureSkating/solve.js @@ -11,8 +11,77 @@ const baseAssignment = { step: 1, }; -// write your codes +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, + }, +]; -function solution(inputArray) {} +const answer = inputArray + .filter((player) => { + return ( + player.goe.jump.length >= baseAssignment.jump && + player.goe.spin.length >= baseAssignment.spin && + player.goe.step.length >= baseAssignment.step + ); + }) + .map((v) => { + //TES + let result = 0; + 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 * baseAssignment.spin; + }, 0); + result += v.goe.step + .sort((a, b) => b - a) + .slice(0, baseAssignment.step) + .reduce((acc, cur) => { + return acc + cur * baseAssignment.step; + }, 0); + // PCS + result += v.pcs; + // PENALTY + result -= v.penalty; -exports.solution = solution; + return { + name: v.name, + score: result, + }; + }); + +console.log(answer); diff --git a/Challenge/jmjmjm/figureSkating/solve.test.js b/Challenge/jmjmjm/figureSkating/solve.test.js deleted file mode 100644 index 7bceadf1..00000000 --- a/Challenge/jmjmjm/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); - }); -}); From 2c14b65244b658b66c868255835afe51e6dcd844 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 20 Mar 2022 17:46:12 +0900 Subject: [PATCH 23/27] solve: expDivOdd --- Challenge/jmjmjm/expDivOdd/solve.js | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Challenge/jmjmjm/expDivOdd/solve.js b/Challenge/jmjmjm/expDivOdd/solve.js index b397fad8..2f90df3a 100644 --- a/Challenge/jmjmjm/expDivOdd/solve.js +++ b/Challenge/jmjmjm/expDivOdd/solve.js @@ -2,10 +2,11 @@ const inputArray = [2, 3, 6, 8, 10]; -let answer = inputArray.map(e => e ** 2) - .filter(e => e%3 == 1) - .reduce((acc, cur) => { - return acc + cur - }, 0); - -console.log(answer); \ No newline at end of file +let answer = inputArray + .map((e) => e ** 2) + .filter((e) => e % 3 == 1) + .reduce((acc, cur) => { + return acc + cur; + }, 0); + +console.log(answer); From 8c03ea5b139e16bf113971c327cb1d6fde36778b Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 20 Mar 2022 17:47:13 +0900 Subject: [PATCH 24/27] solve: findWord --- Challenge/jmjmjm/findWord/solve.js | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Challenge/jmjmjm/findWord/solve.js b/Challenge/jmjmjm/findWord/solve.js index ef8c747f..e63b8ec5 100644 --- a/Challenge/jmjmjm/findWord/solve.js +++ b/Challenge/jmjmjm/findWord/solve.js @@ -1,5 +1,5 @@ -const inputArray = ['잠', '자', '고', '싶', '다', '용가리']; +const inputArray = ["잠", "자", "고", "싶", "다", "용가리", "jmjmjm"]; -const answer = inputArray.includes('용가리'); +const answer = inputArray.includes("용가리"); -console.log(answer); \ No newline at end of file +console.log(answer); From 907b6f61b7a5dcdf881fa02f3e0423b6def0d25e Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 20 Mar 2022 17:48:05 +0900 Subject: [PATCH 25/27] solve: mapAddPercent --- Challenge/jmjmjm/mapAddPercent/solve.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Challenge/jmjmjm/mapAddPercent/solve.js b/Challenge/jmjmjm/mapAddPercent/solve.js index 13e45b1e..ac162a0e 100644 --- a/Challenge/jmjmjm/mapAddPercent/solve.js +++ b/Challenge/jmjmjm/mapAddPercent/solve.js @@ -1,5 +1,5 @@ const inputArray = [100, 10, 20, 40]; -const answer = inputArray.map(e => e+'%'); +const answer = inputArray.map((e) => e + "%"); console.log(answer); From 7b0ec162ecba714ddefe405431a7e3ba15b01637 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 20 Mar 2022 17:48:57 +0900 Subject: [PATCH 26/27] solve: mapAppendOrder --- Challenge/jmjmjm/mapAppendOrder/solve.js | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/Challenge/jmjmjm/mapAppendOrder/solve.js b/Challenge/jmjmjm/mapAppendOrder/solve.js index 279e6e5d..11caf804 100644 --- a/Challenge/jmjmjm/mapAppendOrder/solve.js +++ b/Challenge/jmjmjm/mapAppendOrder/solve.js @@ -1,9 +1,8 @@ -const inputArray = ['홍길동', '둘리', '루피']; +const inputArray = ["홍길동", "둘리", "루피"]; const answer = inputArray.map((el, idx) => { - return { - name: el, - order: idx+1 - } + return { + name: el, + order: idx + 1, + }; }); - From eedacf3b969873dfbc8970c6686137dfacfa8358 Mon Sep 17 00:00:00 2001 From: Jaeman Lim Date: Sun, 20 Mar 2022 17:49:28 +0900 Subject: [PATCH 27/27] solve: recommendAd --- Challenge/jmjmjm/recommendAd/solve.js | 33 ++++++++++++++++++--------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/Challenge/jmjmjm/recommendAd/solve.js b/Challenge/jmjmjm/recommendAd/solve.js index c563baab..c4eff6d6 100644 --- a/Challenge/jmjmjm/recommendAd/solve.js +++ b/Challenge/jmjmjm/recommendAd/solve.js @@ -1,17 +1,28 @@ 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', '그랑사가', '빙그레'] }, + { 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', '그랑사가', '농심', '딱좋은데이', '빙그레', '쌍용자동차', '켈로그코리아' ]; +const advList = [ + "동원F&B", + "정관장", + "KT", + "BBQ", + "그랑사가", + "농심", + "딱좋은데이", + "빙그레", + "쌍용자동차", + "켈로그코리아", +]; let allAdv = []; -userHistory.forEach(el => allAdv.push(...el.watched)); -const answer = advList.filter(e => !allAdv.includes(e)); +userHistory.forEach((el) => allAdv.push(...el.watched)); +const answer = advList.filter((e) => !allAdv.includes(e)); -console.log(answer); \ No newline at end of file +console.log(answer);