[JS] μ•Œκ³ λ¦¬μ¦˜ : 일곱 λ‚œμŸμ΄
728x90

문제

일터에 λ‚˜κ°”λ˜ λ‚œμŸμ΄ 9λͺ…이 μ™€μ„œλŠ” λͺ¨λ‘ μžκΈ°κ°€ 일곱 λ‚œμŸμ΄μ€‘ ν•˜λ‚˜λΌκ³  우기고 μžˆλ‹€.
λͺ¨λ“  λ‚œμŸμ΄μ˜ κ°€μŠ΄μ—λŠ” μˆ«μžκ°€ ν‘œμ‹œλœ 배지가 μžˆλŠ”λ°,
λ‹€ν–‰νžˆλ„ 일곱 λ‚œμŸμ΄μ˜ 배지에 ν‘œμ‹œλœ 숫자의 합이 100μ΄λΌλŠ” λ‹¨μ„œλ‘œ 일곱 λ‚œμŸμ΄λ₯Ό 뢄별할 수 μžˆλ‹€.
일곱 λ‚œμŸμ΄λ₯Ό λΆ„λ³„ν•˜λŠ” ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ‹œμ˜€. 배지 값은 100μ΄ν•˜ μžμ—°μˆ˜λ‘œ λ“€μ–΄μ˜€λ©°,

일곱 λ‚œμŸμ΄μ˜ 배지 값을 κΈ°μ‘΄ μˆœμ„œλŒ€λ‘œ 배열에 λ„£μ–΄ λ°˜ν™˜ν•œλ‹€.

++ 단, 2λͺ…을 μ œμ™Έν•΄μ„œ 100이 λ‚˜μ˜¬ 수 μžˆλŠ” 경우의 μˆ˜λŠ” 1개 뿐이닀.

 

 

 

πŸ‘©‍πŸ’» 풀어보기

function answer(dwarf) {
  let result = [];

  let sum = dwarf.reduce(function (prev, curr) {
    return prev + curr;
  });

  sum -= 100;

  let faker = [];
  for (let i = 0; i < dwarf.length; i++) {
    for (let j = 1; j < dwarf.length; j++) {
      if (sum === dwarf[i] + dwarf[j]) {
        faker[0] = i;
        faker[1] = j;
      }
    }
  }

  let count = 0;
  for (let i = 0; i < dwarf.length; i++) {
    if (faker[0] !== i && faker[1] !== i) result[count++] = dwarf[i];
  }

  return result;
}

일곱 λ‚œμŸμ΄μ˜ 합을 λͺ¨λ‘ λ”ν•˜λ©΄ 100이 λœλ‹€. 그럼 μ „μ²΄κ°’μ—μ„œ 100을 λΉΌλ©΄ λ‚˜λ¨Έμ§€ 두 λͺ…μ˜ ν•©.
값을 λˆ„μ ν•  수 μžˆλŠ” reduce λ©”μ„œλ“œλ₯Ό μ΄μš©ν•΄ 총 λˆ„μ κ°’μ„ ꡬ해 두 λͺ…μ˜ 합을 κ΅¬ν•˜κ³ ,
두 λͺ…μ˜ 자리수λ₯Ό μƒˆλ‘œμš΄ λ°°μ—΄ faker에 μ €μž₯ν–ˆλ‹€.
그리고 μƒˆλ‘œμš΄ for문으둜 faker에 ν•΄λ‹Ήν•˜λŠ” 인덱슀λ₯Ό μ œμ™Έν•œ λ‚˜λ¨Έμ§€ 수λ₯Ό 배열에 λ‹΄μ•˜λ‹€.

 

 

λΆ€μ‘±ν–ˆλ˜ 점

  • λ‹€ ν’€κ³ λ‚˜λ‹ˆ splice λ©”μ„œλ“œκ°€ 생각났닀. 이λ₯Ό ν™œμš©ν–ˆλ‹€λ©΄ 더 짧은 μ½”λ“œλ‘œ κ΅¬ν˜„μ΄ κ°€λŠ₯ν•  것 κ°™λ‹€. μ•„λž˜λŠ” splice λ©”μ„œλ“œλ₯Ό μ¨μ„œ λ‹€μ‹œ ν’€μ–΄λ³Έ μ½”λ“œλ‹€.
function answer(dwarf) {
  let result = [];

  // reduce(λˆ„μ )와 splice(λ°°μ—΄μ‚­μ œ) μ‚¬μš©ν•΄λ³΄κΈ°
  result = dwarf;
  let sum = dwarf.reduce(function (prev, curr) {
    return prev + curr;
  });

  for (let i = 0; i < dwarf.length; i++) {
    for (let j = 1; j < dwarf.length; j++) {
      if (sum == dwarf[i] + dwarf[j] + 100) {
        result.splice(j, 1);
        result.splice(i, 1);
      }
    }
  }
  return result;
}

jλ₯Ό λ¨Όμ € μ‚­μ œν•˜λŠ” μ΄μœ λŠ”, iλ₯Ό λ¨Όμ € μ‚­μ œν–ˆμ„ λ•Œ 인덱슀 μˆœμ„œκ°€ λ°”λ€ŒκΈ° λ•Œλ¬Έμ΄λ‹€.

 

 

 

 

 


🀸‍β™€οΈπŸ€Έ‍β™€οΈπŸ€Έ‍β™€οΈπŸ€Έ‍β™€οΈπŸ€Έ‍β™€οΈπŸ€Έ‍♀️

λ°©λ¬Έν•΄μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€! πŸ™Œ

ν¬μŠ€νŒ…λ“€μ€ κ³΅λΆ€μ€‘인 λ‚΄μš©μ„ κΈ€λ‘œ μž‘μ„±ν•œ 것이라 λΆ€μ‘±ν•œ 점이 λ§ŽμœΌλ‹ˆ μ°Έκ³  λΆ€νƒλ“œλ¦½λ‹ˆλ‹€. 

λΆ€μ‘±ν•œ 뢀뢄에 λŒ€ν•œ μ½”λ©˜νŠΈλŠ” μ–Έμ œλ‚˜ ν™˜μ˜μž…λ‹ˆλ‹€.

쒋은 ν•˜λ£¨ λ˜μ„Έμš”, κ°μ‚¬ν•©λ‹ˆλ‹€! πŸ™‚

 

728x90