diff --git a/javascript/manager/algorithm/README-template.md b/javascript/manager/algorithm/README-template.md new file mode 100644 index 0000000..3c842c4 --- /dev/null +++ b/javascript/manager/algorithm/README-template.md @@ -0,0 +1,35 @@ +# ๐Ÿง AlgorithmType + +> Descriptions + +- ### ๐Ÿงฉ๊ฐœ๋… + - Descriptions +- ### ๐Ÿ‘€ํŠน์ง• + - Descriptions. + +--- + +# ๐Ÿ“Œํ•ต์‹ฌ ์ด๋ก  + +- Descriptions + - Descriptions + +--- + +# ๐Ÿ“๋ฌธ์ œ์˜ˆ์‹œ + +> - Descriptions + +- Descriptions [[๋งํฌ]("ํ’€์ด๋ฐฉ์‹")] + +# โœํ’€์ด๋ฐฉ์‹ + +1. Descriptions + +--- + +# ๐Ÿ‘จโ€๐Ÿ’ปSummary + +> ### ๐Ÿ”ฅKeyWord +> +> - Descriptions diff --git a/javascript/manager/algorithm/README.md b/javascript/manager/algorithm/README.md new file mode 100644 index 0000000..638cbbb --- /dev/null +++ b/javascript/manager/algorithm/README.md @@ -0,0 +1,50 @@ +# ๐Ÿง DynamicProgramming (A.K.A DP) + +> DynamicProgramming, DP, ๋™์  ๊ณ„ํš๋ฒ• + +- ### ๐Ÿงฉ๊ฐœ๋… + - ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ๋กœ ๋ถ„๋ฆฌํ•˜์—ฌ ๋ถ€๋ถ„์˜ ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ ์ตœ์ข…์ ์œผ๋กœ ๋ณต์žกํ•œ ๋ฌธ์ œ์˜ ๋‹ต์„ ๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋œปํ•œ๋‹ค. +- ### ๐Ÿ‘€ํŠน์ง• + - ์ž์ฃผ ๋‚˜์˜ค๋Š” ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ์ด๋ฉฐ ๋ฒ”์œ„๊ฐ€ ์›Œ๋‚™ ๋„“๋‹ค. + +--- + +# ๐Ÿ“Œํ•ต์‹ฌ ์ด๋ก  + +- ํฐ ๋ฌธ์ œ๋ฅผ ์ž‘์€ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ ์•ผํ•œ๋‹ค. + - ์ ํ™”์‹(์žฌ๊ท€์‹)์œผ๋กœ ํ’€์–ด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. +- ์ž‘์€ ๋ฌธ์ œ๋“ค์ด ๋ฐ˜๋ณต๋ผ ๋‚˜ํƒ€๋‚˜๊ณ  ์‚ฌ์šฉ๋˜๋ฉฐ ์ž‘์€ ๋ฌธ๋„ค๋“ค์˜ ๊ฒฐ๊ด๊ฐ’์€ ํ•ญ์ƒ ๊ฐ™์•„์•ผ ํ•œ๋‹ค. [[๋งํฌ](https://ko.wikipedia.org/wiki/%EC%A0%90%ED%99%94%EC%8B%9D "์ ํ™”์‹ wiki")] +- ์ž‘์€ ๋ฌธ์ œ๋“ค์€ ํ•œ ๋ฒˆ๋งŒ ๊ณ„์‚ฐ(ํ•จ์ˆ˜)ํ•ด์„œ returnํ•ด์•ผ ํ•œ๋‹ค. DPํ…Œ์ด๋ธ”์„ ์ด์šฉํ•œ๋‹ค. ์ด๋ฅผ **๋ฉ”๋ชจ์ด์ œ์ด์…˜** ๊ธฐ๋ฒ• ์ด๋ผ๊ณ  ํ•œ๋‹ค. + - ์‹œ๊ฐ„๋ณต์žก๋„ ์ธก๋ฉด์—์„œ ์œ ๋ฆฌํ•˜๋‹ค. + - **๋ฉ”๋ชจ์ด์ œ์ด์…˜**์€ **๋ฐฑํŠธ๋ž˜ํ‚น** ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์œ ์‚ฌํ•˜๋‹ค. +- DP๋Š” **ํ†ฑ-๋‹ค์šด** ๋ฐฉ์‹๊ณผ **๋ฐ”ํ…€-์—…** ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„ ํ•  ์ˆ˜ ์žˆ๋‹ค. + +--- + +# ๐Ÿ“๋ฌธ์ œ์˜ˆ์‹œ + +> - ๋Œ€ํ‘œ์ ์ธ DP๊ฐ€ ์ ์šฉ๋˜๋Š” ์‚ฌ๋ก€ : ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด ๊ณต์‹ +> - ๊ณต์‹: D[N] = D[N - 1] + D[N - 2] +> - baekjoon: [2747](https://www.acmicpc.net/problem/2747 "2747 baekjoon") + +- ๋ฌธ์ œ: ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์—ด๋กœ `[1,x,2,y,5,z]` ์ด๋ฃจ์–ด์ง„ ๋ฐฐ์—ด x,y,z๋ฅผ ๊ตฌํ•˜์‹œ์˜ค. [[๋งํฌ]("ํ’€์ด๋ฐฉ์‹")] + +# โœํ’€์ด๋ฐฉ์‹ + +1. DP๋กœ ํ’€์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ +2. ์ ํ™”์‹ ์„ธ์šฐ๊ธฐ + > ๋…ผ๋ฆฌ์ ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ๋‚˜๋ˆ„๊ณ , ๋ฌธ์ œ๊ฐ„์˜ **์ธ๊ณผ ๊ด€๊ณ„**๋ฅผ ํŒŒ์•…ํ•˜๋Š” ํ›ˆ๋ จ์ด ํ•„์š”ํ•˜๋‹ค. [[section9 ์กฐํ•ฉ](https://www.inflearn.com/course/lecture?courseSlug=%EB%91%90%EC%9E%87-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%ED%8C%8C%EC%9D%B4%EC%8D%AC&unitId=148402&tab=curriculum "inflean")] +3. ๋ฉ”๋ชจ์ œ์ด์…˜ ์›๋ฆฌ ์ดํ•ดํ•˜๊ธฐ + > DPํ…Œ์ด๋ธ”์— ์ €์žฅํ•ด ๋†“๋Š”๋‹ค. +4. ํ†ฑ-๋‹ค์šด ๊ตฌํ˜„ ๋ฐฉ์‹ ์ดํ•ดํ•˜๊ธฐ + > ์œ„์—์„œ๋ถ€ํ„ฐ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•ด ๋‚ด๋ ค์˜ค๋Š” ๋ฐฉ์‹, ์žฌ๊ท€ํ•จ์ˆ˜ ํ˜•ํƒœ๋กœ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ ๋‹จ, ํƒ‘๋‹ค์šด ๋ฐฉ์‹์€ ์žฌ๊ท€ ํ•จ์ˆ˜์˜ ํ˜•ํƒœ๋กœ ๊ตฌํ˜„ ๋˜๊ธฐ์— **์žฌ๊ท€**์˜ ๊นŠ์ด๊ฐ€ ๋งค์šฐ ๊ธธ์–ด์งˆ ๊ฒฝ์šฐ **๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ**๊ฐ€ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋Ÿด ๊ฒฝ์šฐ **๋ฐ”ํ„ด-์—…์œผ๋กœ ๊ตฌํ˜„, ์ตœ์ ํ™” ํ•„์ˆ˜** + +--- + +# ๐Ÿ‘จโ€๐Ÿ’ปSummary + +> ### ๐Ÿ”ฅKeyWord +> +> - ์ ํ™”์‹ +> - ํ†ฑ-๋‹ค์šด, ๋ฐ”ํ…€-์—… +> - ํ’€์ด๋ฐฉ์‹ diff --git a/javascript/manager/algorithm/data/data.js b/javascript/manager/algorithm/data/data.js new file mode 100644 index 0000000..e69de29 diff --git a/javascript/manager/algorithm/dynamicProgramming.js b/javascript/manager/algorithm/dynamicProgramming.js new file mode 100644 index 0000000..e69de29 diff --git a/javascript/source/dev/stdin b/javascript/source/dev/stdin index b45ef6f..547b86b 100644 --- a/javascript/source/dev/stdin +++ b/javascript/source/dev/stdin @@ -1 +1,4 @@ -Hello, World! \ No newline at end of file +121 +1231 +12421 +0 \ No newline at end of file diff --git a/javascript/source/printer.js b/javascript/source/printer.js index ecb7c5b..932b90b 100644 --- a/javascript/source/printer.js +++ b/javascript/source/printer.js @@ -1,6 +1,15 @@ -let path = require('path'); -let inputPath = path.join(__dirname, '/dev/stdin'); // __dirname์€ ํ˜„์žฌ ์Šคํฌ๋ฆฝํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ ˆ๋Œ€๊ฒฝ๋กœ -let input = require('fs').readFileSync(inputPath).toString().trim().split('\r\n'); -//let input = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n'); //๋ฐฑ์ค€ ์ œ์ถœ +let path = require("path"); +let inputPath = path.join(__dirname, "/dev/stdin"); // __dirname์€ ํ˜„์žฌ ์Šคํฌ๋ฆฝํŠธ์˜ ๋””๋ ‰ํ† ๋ฆฌ ์ ˆ๋Œ€๊ฒฝ๋กœ +let input = require("fs") + .readFileSync(inputPath) + .toString() + .trim() + .split("\r\n"); +//let input = require('fs').readFileSync('/dev/stdin').toString().trim().split(''); //๋ฐฑ์ค€ ์ œ์ถœ -console.log('Hello, World!'); +input.filter((el) => { + if (el === "0") return false; // 0์ธ ๊ฒฝ์šฐ ์ œ๊ฑฐ + let newEl = el.split("").reverse().join(""); + console.log(el === newEl ? "yes" : "no"); + return true; +}); diff --git a/javascript/source/test.js b/javascript/source/test.js new file mode 100644 index 0000000..102728c --- /dev/null +++ b/javascript/source/test.js @@ -0,0 +1,2 @@ +const test = require('./test/test'); +const boolean = require('./test/boolean'); diff --git a/javascript/source/test/filter.Multi-DimensionalArray.js b/javascript/source/test/filter.Multi-DimensionalArray.js new file mode 100644 index 0000000..697d0e5 --- /dev/null +++ b/javascript/source/test/filter.Multi-DimensionalArray.js @@ -0,0 +1,14 @@ +const nested = [ + [1, 2, 3], + [4, 5, 6], + [7, 8, 9], +]; + +const filteredNested = nested.map((arr) => arr.filter((num) => num % 2 === 0)); + +console.log(filteredNested); +// [ +// [2], +// [4, 6], +// [8] +// ] diff --git a/javascript/source/test/filter.include.js b/javascript/source/test/filter.include.js new file mode 100644 index 0000000..cae4d10 --- /dev/null +++ b/javascript/source/test/filter.include.js @@ -0,0 +1,5 @@ +const words = ["apple", "banana", "cherry", "date"]; + +const wordsWithA = words.filter((word) => word.includes("a")); + +console.log(wordsWithA); // ['apple', 'banana', 'date'] diff --git a/javascript/source/test/filter.indexOf.js b/javascript/source/test/filter.indexOf.js new file mode 100644 index 0000000..60f8cf7 --- /dev/null +++ b/javascript/source/test/filter.indexOf.js @@ -0,0 +1,7 @@ +const numbers = [1, 2, 2, 3, 4, 4, 5]; + +const uniqueNumbers = numbers.filter( + (num, index, array) => array.indexOf(num) === index +); + +console.log(uniqueNumbers); // [1, 2, 3, 4, 5] diff --git a/javascript/source/test/filter.js b/javascript/source/test/filter.js new file mode 100644 index 0000000..bde7f25 --- /dev/null +++ b/javascript/source/test/filter.js @@ -0,0 +1,5 @@ +const numbers = [1, 2, 3, 4, 5, 6]; + +const evenNumbers = numbers.filter((num) => num % 2 === 0); + +console.log(evenNumbers); // [2, 4, 6] diff --git a/javascript/source/test/filter.object.js b/javascript/source/test/filter.object.js new file mode 100644 index 0000000..5ee2cbc --- /dev/null +++ b/javascript/source/test/filter.object.js @@ -0,0 +1,13 @@ +const people = [ + { name: "Alice", age: 17 }, + { name: "Bob", age: 20 }, + { name: "Charlie", age: 18 }, +]; + +const adults = people.filter((person) => person.age >= 18); + +console.log(adults); +// [ +// { name: 'Bob', age: 20 }, +// { name: 'Charlie', age: 18 } +// ] diff --git a/package.json b/package.json index 70216c9..4d7536d 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,8 @@ "name": "your-project-name", "version": "1.0.0", "scripts": { - "dev": "node javascript/source/printer.js" + "dev": "node javascript/source/printer.js", + "devtest": "node javascript/source/test.js" }, "author": "Your Name", "license": "ISC",