Skip to content

Commit

Permalink
How many stairs will Suzuki climb in 20 years?
Browse files Browse the repository at this point in the history
  • Loading branch information
PheRum committed Jun 20, 2024
1 parent dc35d7c commit 350433e
Show file tree
Hide file tree
Showing 4 changed files with 65 additions and 2 deletions.
13 changes: 13 additions & 0 deletions 8_kyu/How many stairs will Suzuki climb in 20 years?/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
## How many stairs will Suzuki climb in 20 years?

https://www.codewars.com/kata/56fc55cd1f5a93d68a001d4e

Suzuki is a monk who climbs a large staircase to the monastery as part of a ritual. Some days he climbs more stairs than others depending on the number of students he must train in the morning. He is curious how many stairs might be climbed over the next 20 years and has spent a year marking down his daily progress.

The sum of all the stairs logged in a year will be used for estimating the number he might climb in 20.

20_year_estimate = one_year_total \* 20

You will receive the following data structure representing the stairs Suzuki logged in a year. You will have all data for the entire year so regardless of how it is logged the problem should be simple to solve.

stairs = [sunday,monday,tuesday,wednesday,thursday,friday,saturday]
43 changes: 43 additions & 0 deletions 8_kyu/How many stairs will Suzuki climb in 20 years?/index.test.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,43 @@
import { stairsIn20 } from "./index";

describe("Tests", () => {
it("Basic Tests", function () {
let sunday = [
6737, 7244, 5776, 9826, 7057, 9247, 5842, 5484, 6543, 5153, 6832, 8274, 7148, 6152, 5940, 8040, 9174, 7555,
7682, 5252, 8793, 8837, 7320, 8478, 6063, 5751, 9716, 5085, 7315, 7859, 6628, 5425, 6331, 7097, 6249, 8381,
5936, 8496, 6934, 8347, 7036, 6421, 6510, 5821, 8602, 5312, 7836, 8032, 9871, 5990, 6309, 7825,
];
let monday = [
9175, 7883, 7596, 8635, 9274, 9675, 5603, 6863, 6442, 9500, 7468, 9719, 6648, 8180, 7944, 5190, 6209, 7175,
5984, 9737, 5548, 6803, 9254, 5932, 7360, 9221, 5702, 5252, 7041, 7287, 5185, 9139, 7187, 8855, 9310, 9105,
9769, 9679, 7842, 7466, 7321, 6785, 8770, 8108, 7985, 5186, 9021, 9098, 6099, 5828, 7217, 9387,
];
let tuesday = [
8646, 6945, 6364, 9563, 5627, 5068, 9157, 9439, 5681, 8674, 6379, 8292, 7552, 5370, 7579, 9851, 8520, 5881,
7138, 7890, 6016, 5630, 5985, 9758, 8415, 7313, 7761, 9853, 7937, 9268, 7888, 6589, 9366, 9867, 5093, 6684,
8793, 8116, 8493, 5265, 5815, 7191, 9515, 7825, 9508, 6878, 7180, 8756, 5717, 7555, 9447, 7703,
];
let wednesday = [
6353, 9605, 5464, 9752, 9915, 7446, 9419, 6520, 7438, 6512, 7102, 5047, 6601, 8303, 9118, 5093, 8463, 7116,
7378, 9738, 9998, 7125, 6445, 6031, 8710, 5182, 9142, 9415, 9710, 7342, 9425, 7927, 9030, 7742, 8394, 9652,
5783, 7698, 9492, 6973, 6531, 7698, 8994, 8058, 6406, 5738, 7500, 8357, 7378, 9598, 5405, 9493,
];
let thursday = [
6149, 6439, 9899, 5897, 8589, 7627, 6348, 9625, 9490, 5502, 5723, 8197, 9866, 6609, 6308, 7163, 9726, 7222,
7549, 6203, 5876, 8836, 6442, 6752, 8695, 8402, 9638, 9925, 5508, 8636, 5226, 9941, 8936, 5047, 6445, 8063,
6083, 7383, 7548, 5066, 7107, 6911, 9302, 5202, 7487, 5593, 8620, 8858, 5360, 6638, 8012, 8701,
];
let friday = [
5000, 5642, 9143, 7731, 8477, 8000, 7411, 8813, 8288, 5637, 6244, 6589, 6362, 6200, 6781, 8371, 7082, 5348,
8842, 9513, 5896, 6628, 8164, 8473, 5663, 9501, 9177, 8384, 8229, 8781, 9160, 6955, 9407, 7443, 8934, 8072,
8942, 6859, 5617, 5078, 8910, 6732, 9848, 8951, 9407, 6699, 9842, 7455, 8720, 5725, 6960, 5127,
];
let saturday = [
5448, 8041, 6573, 8104, 6208, 5912, 7927, 8909, 7000, 5059, 6412, 6354, 8943, 5460, 9979, 5379, 8501, 6831,
7022, 7575, 5828, 5354, 5115, 9625, 7795, 7003, 5524, 9870, 6591, 8616, 5163, 6656, 8150, 8826, 6875, 5242,
9585, 9649, 9838, 7150, 6567, 8524, 7613, 7809, 5562, 7799, 7179, 5184, 7960, 9455, 5633, 9085,
];
const stairs = [sunday, monday, tuesday, wednesday, thursday, friday, saturday];
expect(stairsIn20(stairs)).toBe(54636040);
});
});
7 changes: 7 additions & 0 deletions 8_kyu/How many stairs will Suzuki climb in 20 years?/index.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
export function stairsIn20(stairs: number[][]): number {
let sum = 0;

stairs.forEach((stair) => (sum += stair.reduce((acc, cur) => acc + cur, 0)));

return sum * 20;
}
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@

### Katas solved

`Total`: 119 \
`8_kyu`: 94 \
`Total`: 120 \
`8_kyu`: 95 \
`7_kyu`: 16 \
`6_kyu`: 9 \
`5_kyu`: 0 \
Expand Down

0 comments on commit 350433e

Please sign in to comment.