https://programmers.co.kr/learn/courses/30/lessons/67257
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์์ ์ต๋ํ
IT ๋ฒค์ฒ ํ์ฌ๋ฅผ ์ด์ํ๊ณ ์๋ ๋ผ์ด์ธ์ ๋งค๋ ์ฌ๋ด ํด์ปคํค ๋ํ๋ฅผ ๊ฐ์ตํ์ฌ ์ฐ์น์์๊ฒ ์๊ธ์ ์ง๊ธํ๊ณ ์์ต๋๋ค. ์ด๋ฒ ๋ํ์์๋ ์ฐ์น์์๊ฒ ์ง๊ธ๋๋ ์๊ธ์ ์ด์ ๋ํ์๋ ๋ค๋ฅด๊ฒ ๋ค์๊ณผ
programmers.co.kr
โถ ์ฝ๋ :
function solution(expression) {
var orders = [
['*', '+', '-'],
['*', '-', '+'],
['+', '-', '*'],
['+', '*', '-'],
['-', '+', '*'],
['-', '*', '+'],
];
let answer = -1;
for (const order of orders){
var res = parseInt(recursive(order,0,expression));
res= Math.abs(res);
if (res > answer)
{
answer = res;
}
}
return answer;
}
function recursive(order,n, expr)
{
if (n == 2)
{
return eval(expr);
}
else
{
if (order[n] == '*')
{
let temp = expr.split('*');
let val = [];
for (const e of temp)
{
val.push(recursive(order, n + 1, e));
}
return eval(val.join('*'));
}
else if(order[n] == '-')
{
let temp = expr.split('-');
let val = [];
for (const e of temp)
{
val.push(recursive(order, n + 1, e));
}
return eval(val.join('-'));
}
else if(order[n] == '+')
{
let temp = expr.split('+');
let val = [];
for (const e of temp)
{
val.push(recursive(order, n + 1, e));
}
return eval(val.join('+'));
}
}
return temp;
}
โถ ๋ฌธ์ ํ์ด :
1. ๊ณ์ฐ ์์๋ฅผ ์ ์ฅํ๋ orders ๋ฐฐ์ด์ ์์ฑํ์๋ค.
2. ๊ฐ๊ฐ์ ๊ณ์ฐ์์์ ๋ฐ๋ผ ๊ณ์ฐ์ ์งํํ๊ณ , ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ธ์ ์ต์๊ฐ์ answer์ ์ ์ฅํ์๋ค.
3. recursiveํจ์๋ฅผ ํตํด ๊ณ์ฐ์ ์งํํ๋ค.
3-1) recursiveํจ์๋ n=2์ผ๋ ์ฌ๊ท๋ฅผ ์ข ๋ฃํ๋ค.
3-2) ๊ฐ๊ฐ์ order์ ์ ์ฅ๋ ์ฐ์ฐ์๋ฅผ ๊ธฐ์ค์ผ๋ก ๋๋๊ณ ์ฌ๊ท๋ฅผ ํตํด ๋๋ ์ง ํํ์์๋ํด ๊ฐ์ ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค.
3-3) order์ ๋ง์ง๋ง ์ฐ์ฐ์ด ์ข ๋ฃ๋จ์ ๋ฐ๋ผ ์์ฐจ์ ์ผ๋ก ๋ฐํํ๊ณ , ์ดํ ๋ฐํ๋ ๊ฒฐ๊ณผ ๋ฌธ์์ด๋ค์ ๋ค์ ๋๋ ์ฐ์ฐ์๋ก joinํ์ฌ ๊ฒฐ๊ณผ๋ฅผ ๊ณ์ฐํ๋ค.
'๐ฏ CodingTest > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Programmers] (Javascript) ์ถ์ ํธ๋ํฝ (0) | 2022.04.26 |
---|---|
[Programmers] (Javascript) ํํ (0) | 2022.04.25 |
[Programmers] (Javascript) ๋ด์ค ํด๋ฌ์คํฐ๋ง (0) | 2022.04.25 |
[Programmers] (Javascript) ๊ดํธ ๋ณํ (0) | 2022.04.25 |
[Programmers] (Javascript) ๊ฑฐ๋ฆฌ๋๊ธฐ ํ์ธํ๊ธฐ (0) | 2022.04.21 |