TIL_20.06.24 πŸƒπŸ½β€β™‚οΈπŸƒπŸ½β€β™‚οΈ

Doum KimΒ·2020λ…„ 6μ›” 24일
0

TIL

λͺ©λ‘ 보기
4/71
post-thumbnail

Codestates pre course 9일차

μ˜€λŠ˜μ€ μ½”λ“œμŠ€ν…Œμ΄μΈ  프리 μ½”μŠ€ 9일차

μžλ°”μŠ€ν¬λ¦½νŠΈ 기초 μ•Œκ³ λ¦¬μ¦˜ 문제 νŽ˜μ–΄ ν”„λ‘œκ·Έλž˜λ° μ™„λ£Œμ™€ 3μ°¨ νŽ˜μ–΄ μ’…λ£Œ
μ˜€λŠ˜μ€ λ ˆμŠ¨μ„ ν†΅ν•΄μ„œ Command Line 기초 μ‚¬μš©λ²•κ³Ό Git κΈ°μ΄ˆμ— λŒ€ν•΄μ„œ κ³΅λΆ€ν–ˆλ‹€.
git은 ν•„μˆ˜λ‘œ μ•Œμ•„μ•Όν•˜λ‹ˆ 더 μžμ„Ένžˆ κ³΅λΆ€ν•΄λ³΄μž...
κΉƒ 정리 λ§ν¬πŸ€“

μΆ”κ°€λ‘œ κ³΅λΆ€ν•˜λ©΄μ„œ κΆκΈˆν–ˆλ˜ 점이 μž¬κ·€ν•¨μˆ˜λ₯Ό μ™œ μ“°λŠ”κ°€ μ˜€λŠ”λ° 검색을 ν†΅ν•΄μ„œ μž₯, 단점을 μ°Ύμ•„λ΄€λ‹€.
κ°„λ‹¨ν•˜κ²Œ μ •λ¦¬ν•˜μžλ©΄

  • μž₯점
    μ•Œκ³ λ¦¬μ¦˜μ˜ λ¬Έλ§₯이 간단해진닀. (가독성 μƒμŠΉ)
    λ³€μˆ˜μ˜ μ‚¬μš©μ„ 쀄여쀀닀. (λ©”λͺ¨λ¦¬ λ¬Έμ œκ°€ μ•„λ‹Œ mutable stateλ₯Ό μ œκ±°ν•΄ 였λ₯˜λ₯Ό μ΅œμ†Œν™”ν•  수 μžˆλ‹€λŠ” 점이닀.)
  • 단점
    λ©”λͺ¨λ¦¬ μ†Œλͺ¨κ°€ μ‹¬ν•˜λ‹€. (호좜될 λ•Œ λ§ˆλ‹€ ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜, μ§€μ—­λ³€μˆ˜, λ°˜ν™˜ 값이 λ©”λͺ¨λ¦¬μ— μ €μž₯이 λœλ‹€.)
  • μž¬κ·€ν•¨μˆ˜ μ‚¬μš© 예1 (νŒ©ν† λ¦¬μ–Ό ν•¨μˆ˜)
const factorial = number => {
  if (number === 1) return 1;
  return number * factorial(number - 1);
};

console.log(factorial(5)); // 120
  • μž¬κ·€ν•¨μˆ˜ μ‚¬μš© 예2 (κΈ‰μ—¬ 계산)
let company = {
  sales: [{ name: "John", salary: 1000 }, { name: "Alice", salary: 1600 }],
  development: {
    sites: [{ name: "Peter", salary: 2000 }, { name: "Alex", salary: 1800 }],
    internals: [{ name: "Jack", salary: 1300 }]
  }
};

const countSalary = department => {
  if (Array.isArray(department)) {
    return department.reduce((acc, cur) => (acc += cur.salary), 0);
  } else {
    let sum = 0;
    for (let subDepartments of Object.values(department)) {
      sum += countSalary(subDepartments);
    }
    return sum;
  }
};

console.log(countSalary(company));  // 7700

0개의 λŒ“κΈ€