μ™„μ „νƒμƒ‰μœΌλ‘œ ν•΄κ²°ν•΄μ•Όν•˜λŠ” 문제 -> 쑰합을 이용

 

4Combination3 = 4C3

4개 쀑에 3κ°œμ”© 선택할 λ•Œ λ‚˜μ˜¬ 수 μžˆλŠ” λͺ¨λ“  쑰합을 κ΅¬ν•œλ‹€. 이 λ•Œ, μ‘°ν•©μ˜ μˆœμ„œλŠ” 상관이 μ—†λ‹€. μˆœμ„œκ°€ λ°”λ€Œμ–΄λ„ 같은 ꡬ성이기 λ•Œλ¬Έμ— ν•˜λ‚˜μ˜ μ‘°ν•©μœΌλ‘œ μ·¨κΈ‰ν•œλ‹€. 

 

μ†Œμˆ˜ 

: 1κ³Ό 자기 μžμ‹ λ§Œμ„ μ•½μˆ˜λ‘œ κ°–λŠ” 수, μžμ‹ λ³΄λ‹€ μž‘μ€ 두 개의 μžμ—°μˆ˜λ₯Ό κ³±ν•˜μ—¬ λ§Œλ“€ 수 μ—†λŠ” 1보닀 큰 μžμ—°μˆ˜

 

처음 μ‹œλ„ν•œ 방법

μ‘°ν•©μœΌλ‘œ λͺ¨λ“  경우의 수 λ°°μ—΄λ‘œ μ°Ύμ•„μ„œ λ‹€ λ”ν•œλ‹€μŒμ— μ†Œμˆ˜νŒλ³„ν•  μƒκ°μ΄μ—ˆλ‹€. -> μ‹€νŒ¨

 

쑰합을 μ΄μš©ν•˜κΈ°

μ„œλ‘œ λ‹€λ₯Έ n개의 λ¬Όκ±΄μ—μ„œ μˆœμ„œλ₯Ό μƒκ°ν•˜μ§€μ•Šκ³  r개λ₯Ό 택할 λ•Œ, nκ°œμ—μ„œ rλ₯Ό νƒν•˜λŠ” μ‘°ν•© -> nCr

5개 μ€‘μ—μ„œ 3개λ₯Ό λ”ν•˜λŠ” μ‘°ν•© 5C3 = 5*4*3 /3*2*1 = 10κ°€μ§€

 

λ°°μ—΄μ˜ μ²˜μŒλΆ€ν„° ν•˜λ‚˜μ”© κ³ μ •ν•˜λ©΄μ„œ λ’€μ˜ λ‚˜λ¨Έμ§€ 배열에 λŒ€ν•΄μ„œ 쑰합을 κ΅¬ν•œλ‹€. 

 

 

 

μ½”λ“œ

const solution = (nums) => {
  let answer = 0;
  const len = nums.length;

  for (let i = 0; i < len; i++) {
    for (let j = i + 1; j < len; j++) {
      for (let k = j + 1; k < len; k++) {
        const sum = nums[i] + nums[j] + nums[k];
        if (isPrime(sum)) answer++;
      }
    }
  }
  return answer;
}

const isPrime = (sum) => {
  for (let i = 2; i < sum; i++)
    if (sum % i === 0) return false;
  return true;
}

 

+ Recent posts