From 1fce31032c5a8602c2ff109760f50cbca7516dc2 Mon Sep 17 00:00:00 2001 From: Emin Deniz <44745432+emindeniz99@users.noreply.github.com> Date: Sun, 11 Oct 2020 15:44:04 +0300 Subject: [PATCH] solve week3 algos --- algos/level1/week3/emin.index.js | 5 +++++ algos/level1/week3/emin.test.js | 25 +++++++++++++++++++++++++ algos/level2/week3/emin.index.js | 19 +++++++++++++++++++ algos/level2/week3/emin.test.js | 15 +++++++++++++++ 4 files changed, 64 insertions(+) create mode 100644 algos/level1/week3/emin.index.js create mode 100644 algos/level1/week3/emin.test.js create mode 100644 algos/level2/week3/emin.index.js create mode 100644 algos/level2/week3/emin.test.js diff --git a/algos/level1/week3/emin.index.js b/algos/level1/week3/emin.index.js new file mode 100644 index 0000000..0347e17 --- /dev/null +++ b/algos/level1/week3/emin.index.js @@ -0,0 +1,5 @@ +const arr = (count = 0) => { + return new Array(count).fill(0).map((_, index) => index) +} + +module.exports = { arr } diff --git a/algos/level1/week3/emin.test.js b/algos/level1/week3/emin.test.js new file mode 100644 index 0000000..604dc49 --- /dev/null +++ b/algos/level1/week3/emin.test.js @@ -0,0 +1,25 @@ +const arr = require("./emin.index.js").arr + +test("arr function exists", () => { + expect(arr).toBeDefined() +}) + +test("return type is array", () => { + expect(Array.isArray(arr())).toEqual(true) +}) + +describe("array elements", function () { + test("should get correct answer", function () { + expect(arr(6)).toEqual([0, 1, 2, 3, 4, 5]) + expect(arr(1)).toEqual([0]) + expect(arr(0)).toEqual([]) + }) +}) + +describe("array length", function () { + test("should get correct answer", function () { + expect(arr(6).length).toEqual(6) + expect(arr(1).length).toEqual(1) + expect(arr(0).length).toEqual(0) + }) +}) diff --git a/algos/level2/week3/emin.index.js b/algos/level2/week3/emin.index.js new file mode 100644 index 0000000..47498de --- /dev/null +++ b/algos/level2/week3/emin.index.js @@ -0,0 +1,19 @@ +const get_score = (arr = [4, 2, 2, 3, 3, 4, 2]) => { + score = 0 + level = 0 + lineCounter = 0 + basePoints = [40, 100, 300, 1200] + + for (let line of arr) { + score += basePoints[line - 1] * (level + 1) + lineCounter += line + if (lineCounter >= 10) { + lineCounter -= 10 + level++ + } + } + return score +} +get_score() + +module.exports = { get_score } diff --git a/algos/level2/week3/emin.test.js b/algos/level2/week3/emin.test.js new file mode 100644 index 0000000..13b5c02 --- /dev/null +++ b/algos/level2/week3/emin.test.js @@ -0,0 +1,15 @@ +const get_score = require("./emin.index.js").get_score + +test("get_score function exists", () => { + expect(get_score).toBeDefined() +}) + +test("return type is number", () => { + expect(typeof get_score([])).toEqual("number") +}) + +describe("scores", function () { + test("should get correct answer", function () { + expect(get_score([4, 2, 2, 3, 3, 4, 2])).toEqual(4900) + }) +})