// Recursion 사용 x
console.log(capitalizeFirst(["car", "taco", "banana"])); // ['Car','Taco','Banana']
function capitalizeFirst(arr) {
const newArr = [];
for (let str of arr) {
const newStr = str[0].toUpperCase() + str.slice(1, str.length);
newArr.push(newStr);
}
return newArr;
}
// Udemy Solution
function capitalizeFirst (array) {
if (array.length === 1) {
return [array[0][0].toUpperCase() + array[0].substr(1)];
}
const res = capitalizeFirst(array.slice(0, -1));
const string = array.slice(array.length - 1)[0][0].toUpperCase() + array.slice(array.length-1)[0].substr(1);
res.push(string);
return res;
}
function nestedEvenSum(obj) {
let total = 0;
function helper(obj) {
if (typeof obj !== "object") return;
let arr = Object.keys(obj);
for (let key of arr) {
if (obj[key] % 2 === 0) {
total += obj[key];
} else {
helper(obj[key]);
}
}
}
helper(obj);
return total;
// add whatever parameters you deem necessary - good luck!
}
var obj1 = {
outer: 2,
obj: {
inner: 2,
otherObj: {
superInner: 2,
notANumber: true,
alsoNotANumber: "yup"
}
}
}
var obj2 = {
a: 2,
b: {b: 2, bb: {b: 3, bb: {b: 2}}},
c: {c: {c: 2}, cc: 'ball', ccc: 5},
d: 1,
e: {e: {e: 2}, ee: 'car'}
};
nestedEvenSum(obj1); // 6
nestedEvenSum(obj2); // 10
// Udemy Solution
function nestedEvenSum (obj, sum=0) {
for (var key in obj) {
if (typeof obj[key] === 'object'){
sum += nestedEvenSum(obj[key]);
} else if (typeof obj[key] === 'number' && obj[key] % 2 === 0){
sum += obj[key];
}
}
return sum;
}
// Udemy Solution
function capitalizeWords (array) {
if (array.length === 1) {
return [array[0].toUpperCase()];
}
let res = capitalizeWords(array.slice(0, -1));
res.push(array.slice(array.length-1)[0].toUpperCase());
return res;
}
// Udemy Solution
function stringifyNumbers(obj) {
var newObj = {};
for (var key in obj) {
if (typeof obj[key] === 'number') {
newObj[key] = obj[key].toString();
} else if (typeof obj[key] === 'object' && !Array.isArray(obj[key])) {
newObj[key] = stringifyNumbers(obj[key]);
} else {
newObj[key] = obj[key];
}
}
return newObj;
}
// Udemy Solution - Helper
function collectStrings(obj) {
var stringsArr = [];
function gatherStrings(o) {
for(var key in o) {
if(typeof o[key] === 'string') {
stringsArr.push(o[key]);
}
else if(typeof o[key] === 'object') {
return gatherStrings(o[key]);
}
}
}
gatherStrings(obj);
return stringsArr;
}
// Udemy Solution - Helper x
function collectStrings(obj) {
var stringsArr = [];
for(var key in obj) {
if(typeof obj[key] === 'string') {
stringsArr.push(obj[key]);
}
else if(typeof obj[key] === 'object') {
stringsArr = stringsArr.concat(collectStrings(obj[key]));
}
}
return stringsArr;
}
'Algorithm' 카테고리의 다른 글
Binary Search (0) | 2022.07.31 |
---|---|
Searching Algorithm (0) | 2022.07.27 |
[문제풀이] Recursion 심화 (1) (0) | 2022.07.26 |
[문제풀이] Recursion (0) | 2022.07.24 |
Helper Method Recursion (+ Pure Recursion) (0) | 2022.07.24 |