์•Œ๊ณ ๋ฆฌ์ฆ˜ & ๋ฌธ์ œํ’€์ด/Programmers-0

๋ฌธ์ž์—ด ๊ณ„์‚ฐํ•˜๊ธฐ

YunCow 2022. 10. 19. 16:42
function solution(my_string) {
  return eval(my_string);
}

function solution(my_string) {
  let result = 0;

  my_string = my_string.split(" ").filter((v) => v !== "+");

  for (let i = 0; i < my_string.length; i++) {
    if (my_string[i] === "-") {
      result -= parseInt(my_string[i + 1] * 2);
    } else {
      result += parseInt(my_string[i]);
    }
  }

  return result;
}

/*
(ํ’€์ด)
1. eval ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ๋ฌธ์ž์—ด์„ ๊ณ„์‚ฐ

2. ๊ณต๋ฐฑ์œผ๋กœ ์š”์†Œ๋ฅผ ๋‚˜๋ˆ ์ฃผ๊ณ  filter๋กœ + ๋ฅผ ์ œ์™ธํ•œ ๋‚˜๋จธ์ง€๋ฅผ ์žฌํ• ๋‹น
for ๋ฌธ์„ ๋Œ๋ ค -์ผ ๊ฒฝ์šฐ๋งŒ ํ˜„์žฌ ์ธ๋ฑ์Šค+1 ์š”์†Œ๋ฅผ result์— 2๋ฐฐ๋กœ ๋นผ์ฃผ๊ณ 
์ผ๋ฐ˜ ์ˆซ์ž ์š”์†Œ์ผ๋•Œ๋Š” ๋”ํ•ด์ค€๋‹ค.
 */

 

ํ”ผ๋“œ๋ฐฑ

function solution(my_string) {
  const arr = my_string.split(" ").filter((v) => v !== "+");
  let result = 0;
  for (let i = 0; i < arr.length; i++) {
    if (my_string[i] === "-") {
      result -= parseInt(arr[i + 1] * 2);
    } else {
      result += parseInt(arr[i]);
    }
  }
  return result;
}
  • ์ฒซ๋ฒˆ์งธ ํ’€์ด์—์„œ ์‚ฌ์šฉํ•œ eval()์€ ์‹ค๋ฌด์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ๋ฉ”์„œ๋“œ๋‹ค. ์ด์œ ๋Š” ์—ฌ๋Ÿฌ๊ฐ€์ง€๊ฐ€ ์žˆ๋Š”๋ฐ ๋ณด์•ˆ์ƒ ๋ฌธ์ œ, ์†๋„, ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜ ๋“ฑ์ด ์žˆ๋‹ค.
  • ๋‘๋ฒˆ์งธ ํ’€์ด์—์„œ ์ฃผ์–ด์ง„ my_string์— ์žฌํ• ๋‹น ํ•˜๋Š” ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์˜€๋Š”๋ฐ filter๋Š” ์ƒˆ๋กœ์šด ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•ด์ฃผ๊ธฐ์— ๊ด€๋ จ๋œ ๋ณ€์ˆ˜๋ช…์œผ๋กœ ํ• ๋‹นํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์•„๋ณด์ธ๋‹ค. ๐Ÿ‘

 

๋‹ค๋ฅธ ํ’€์ด

function solution(my_string) {
  const arr = my_string.split(" ");
  let result = Number(arr[0]);

  arr.forEach((el, i) => {
    const next = Number(arr[i + 1]);

    if (el === "+") result += next;
    else if (el === "-") result -= next;
  });

  return result;
}
  • filter๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ๋ฐฉ๋ฒ•. ์ˆœํšŒ๋ฅผ ๋Œ๋ฉด์„œ ์—ฐ์‚ฐ์ž๊ฐ€ ๋‚˜์˜ฌ ๊ฒฝ์šฐ ๊ทธ ๋‹ค์Œ ํ”ผ์—ฐ์‚ฐ์ž๋ฅผ ๋ˆ„์  ์‹œํ‚ค๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
  • ์ด๋ ‡๊ฒŒ ์ฝ”๋“œ๋ฅผ ์งœ๋ ค๋ฉด ์ฒซ ๋ฒˆ์งธ ์š”์†Œ๋ฅผ result์— ํ• ๋‹น ์‹œ์ผœ์•ผ ํ•œ๋‹ค!