{"ScriptPreparationCode":"const createNestedOptions = (depth, breadth) =\u003E {\r\n if (depth === 0) {\r\n return { good_price: 10, good_qty: 1 };\r\n }\r\n return {\r\n good_price: 10,\r\n good_qty: 1,\r\n option: Array(breadth)\r\n .fill(null)\r\n .map(() =\u003E createNestedOptions(depth - 1, breadth)),\r\n };\r\n};\r\n\r\nconst sampleData = {\r\n good_price: 100,\r\n good_qty: 2,\r\n option: [\r\n createNestedOptions(10, 3), // \uAE4A\uC774 10, \uB108\uBE44 3\uC758 \uC911\uCCA9\uB41C \uC635\uC158\r\n createNestedOptions(10, 5), // \uAE4A\uC774 10, \uB108\uBE44 5\uC758 \uC911\uCCA9\uB41C \uC635\uC158\r\n ], \r\n};","TestCases":[{"Name":"org","Code":"const orderProductTotalPrice = (product) =\u003E {\r\n const optionTotalPrice = (option) =\u003E {\r\n const optionPrice = option ? option.good_price * option.good_qty : 0;\r\n const childOptionPrice =\r\n option.option?.reduce((acc, cur) =\u003E {\r\n return acc \u002B optionTotalPrice(cur);\r\n }, 0) || 0;\r\n return optionPrice \u002B childOptionPrice;\r\n };\r\n const { good_price, good_qty, option = [] } = product;\r\n const productPrice = Number(good_price) * Number(good_qty);\r\n const optionPrice = option.reduce((acc, cur) =\u003E {\r\n return acc \u002B optionTotalPrice(cur);\r\n }, 0);\r\n return productPrice \u002B optionPrice;\r\n };\r\n \r\norderProductTotalPrice(sampleData)","IsDeferred":false},{"Name":"mdf","Code":"const orderProductTotalPrice = (product) =\u003E {\r\n const optionTotalPrice = (options) =\u003E {\r\n const stack = [...options]; // \uC635\uC158\uC744 \uC2A4\uD0DD\uC73C\uB85C \uCD08\uAE30\uD654\r\n let totalPrice = 0;\r\n\r\n while (stack.length \u003E 0) {\r\n const currentOption = stack.pop();\r\n if (currentOption) {\r\n totalPrice \u002B= currentOption.good_price * currentOption.good_qty;\r\n // \uC790\uC2DD \uC635\uC158\uC774 \uC788\uC73C\uBA74 \uC2A4\uD0DD\uC5D0 \uCD94\uAC00\r\n if (currentOption.option) {\r\n stack.push(...currentOption.option);\r\n }\r\n }\r\n }\r\n\r\n return totalPrice;\r\n };\r\n\r\n const { good_price, good_qty, option = [] } = product;\r\n const productPrice = Number(good_price) * Number(good_qty);\r\n const optionPrice = optionTotalPrice(option);\r\n\r\n return productPrice \u002B optionPrice;\r\n};\r\n\r\norderProductTotalPrice(sampleData)","IsDeferred":false}]}