문제

Finn은 μš”μ¦˜ μˆ˜ν•™κ³΅λΆ€μ— λΉ μ Έ μžˆμŠ΅λ‹ˆλ‹€. μˆ˜ν•™ 곡뢀λ₯Ό ν•˜λ˜ Finn은 "μžμ—°μˆ˜ n을 μ—°μ†ν•œ μžμ—°μˆ˜λ“€λ‘œ ν‘œν˜„ ν•˜λŠ” 방법"이 μ—¬λŸ¬κ°œλΌλŠ” 사싀을 μ•Œκ²Œ λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

예λ₯Όλ“€μ–΄ 15λŠ” λ‹€μŒκ³Ό 같이 4κ°€μ§€λ‘œ ν‘œν˜„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

1 + 2 + 3 + 4 + 5 = 15

4 + 5 + 6 = 15

7 + 8 = 15

15 = 15

μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, μ—°μ†λœ μžμ—°μˆ˜λ“€λ‘œ n을 ν‘œν˜„ν•˜λŠ” λ°©λ²•μ˜ 수λ₯Ό returnν•˜λŠ” solutionλ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

 

풀이

μ²˜μŒμ— 찾은 κ·œμΉ™μ€ μ•½μˆ˜λ₯Ό μ΄μš©ν•˜λ©΄ 될 것 κ°™μ•˜λ‹€.

15의 μ•½μˆ˜μ˜ 개수 [1,3,5,15] -> 4개

 

14의 μ•½μˆ˜λ‘œ κ³„μ‚°ν•΄λ³΄μ•˜μ„ λ•Œ 

μ—°μ†λœ 경우둜 찾을 수 μžˆλŠ” 것은 2가지인데,

2+3+4+5 = 14

14 = 14 

μ•½μˆ˜λŠ” [1,2,7,14] 4κ°œμ΄λ‹€. 

 

μ™„μ „νƒμƒ‰μœΌλ‘œ ν’€μ–΄μ•Όν•˜λ‚˜ μ‹Άμ–΄μ„œ Array.from으둜 1λΆ€ν„° nκΉŒμ§€ λ‹΄κΈ΄ 배열을 λ§Œλ“€κ³ , λˆ„μ ν•΄μ„œ λ”ν•˜λ‹€κ°€ 15κ°€ 되면 μΉ΄μš΄νŒ…μ„ ν•œλ‹€. λ˜κΈ΄ν•  것 같은데 μ‹œκ°„λ³΅μž‘λ„μ—μ„œ λ³„λ‘œμΈ 방법이라고 μƒκ°ν–ˆκ³ , μ•½μˆ˜λ₯Ό μ΄μš©ν•˜λŠ” 방법을 μ°Ύμ•„λ³΄κΈ°λ‘œ ν–ˆλ‹€.

 

ν•΄λ‹Ή λ¬Έμ œλŠ”

"주어진 수λ₯Ό μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ ν‘œν˜„ν•˜λŠ” λ°©λ²•μ˜ 수"와

"주어진 수의 ν™€μˆ˜μΈ μ•½μˆ˜μ˜ 갯수"λŠ” κ°™λ‹€.

주어진 수 λ₯Ό μ—°μ†λœ μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ ν‘œν˜„ν•˜λŠ” 방법 수 = 주어진 수의 μ•½μˆ˜ 쀑에 ν™€μˆ˜μ˜ 개수

λŠ” 곡식을 μ΄μš©ν•œ ν’€μ΄λΌκ³ ν•œλ‹€. 

 

μ•½μˆ˜ 쀑에 ν™€μˆ˜μΈ κ²ƒμ˜ 갯수λ₯Ό μ°Ύμ•„μ•Όν–ˆλ‹€. 

*μ•½μˆ˜ : μ–΄λ–€ 수λ₯Ό λ‚˜λˆ„μ–΄ λ‚˜λ¨Έμ§€ 없이 λ–¨μ–΄μ§€λŠ” 수

15의 μ•½μˆ˜λŠ” 1, 3, 5, 15 이고 이 쀑 ν™€μˆ˜λŠ” 4κ°œμ΄λ‹€. 

• μ•½μˆ˜ 1 => μ—°μ†ν•˜λŠ” 1개 μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ ν‘œν˜„ κ°€λŠ₯
   15 = 15
• μ•½μˆ˜ 3 => μ—°μ†ν•˜λŠ” 3개 μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ ν‘œν˜„ κ°€λŠ₯15λ₯Ό 3으둜 λ‚˜λˆˆκ°’μΈ 5둜 ν‘œν˜„ν•  수 μžˆλ‹€.
   5 + 5 + 5 = 15 => 3 + 4 + 5 = 15
• μ•½μˆ˜ 5 => μ—°μ†ν•˜λŠ” 5개 μžμ—°μˆ˜μ˜ ν•©μœΌλ‘œ ν‘œν˜„ κ°€λŠ₯15λ₯Ό 5둜 λ‚˜λˆˆκ°’μΈ 3으둜 ν‘œν˜„ν•  수 μžˆλ‹€.
   3 + 3 + 3 + 3 + 3 = 15 => 1 + 2 + 3 + 4 + 5 = 15
• μ•½μˆ˜ 15 => λͺ¨λ“  ν™€μˆ˜(2n+1)λŠ” nκ³Ό n+1둜 ν‘œν˜„ κ°€λŠ₯
   7 + 8 = 15

 

 

μ½”λ“œ

const solution = (n) => {
  let count = 0;

  for (let i = 0; i <= n; i++) {
    if (n % i === 0 && i % 2 !== 0) {
      count++;
    }
  }

  return count;
}

+ Recent posts