1.75h all on 2 codewars problems.
This one took me an hour, and then I see that the highest rated answer is only 5 lines long!
//https://www.codewars.com/kata/5592e3bd57b64d00f3000047/train/javascript // Your task is to construct a building which will be a pile of n cubes. The // cube at the bottom will have a volume of n^3, the cube above will have volume // of (n-1)^3 and so on until the top which will have a volume of 1^3. // You are given the total volume m of the building. Being given m can you find // the number n of cubes you will have to build? // The parameter of the function findNb (find_nb, find-nb, findNb) will be an // integer m and you have to return the integer n such as n^3 + (n-1)^3 + ... // + 1^3 = m if such a n exists or -1 if there is no such n. var cubeHash={} function findNb(m) { for (let n = 0; findVol(n) <= m; n++){ if (findVol(n) == m ) return n } return (-1); } function findVol(n) { let volume = 0 for (let i = n; i > 0; i--) { //iterate down and add up volume += cubeLookup(i) } return volume } function cubeLookup(n) { //get and set cached values if (n in cubeHash) { //check for cached value return cubeHash[n] } else { //make it and cache it cubeHash[n] = Math.pow(n,3) delete cubeHash[n-3] return cubeHash[n] } }
Then I worked for about 45 min on this problem. I’m getting there, but it’s time for bed. I’m coding in a hotel bathroom while my family sleeps close by. It’s not very comfortable or motivational, but it’s also not a 0-day for the study log!
Today was a good day in that I stayed focused on one language, I remembered to use an es6 arrow function and Math.pow(), and I solved one problem. Small steps, but they are all in the right direction.