YunCow 2022. 10. 9. 01:02

ํ’€์ด1 ๐Ÿ™Ž๐Ÿป‍โ™‚๏ธ

//ํ’€์ด 1

function solution(nums) {
  const numberOfAllCases = getCombinations(nums, 3).map((innerArr) =>
    innerArr.reduce((acc, cur) => acc + cur, 0)
  );
  let result = 0;

  numberOfAllCases.map((v) => {
    if (primeNumber(v)) result++;
  });

  return result;
}

const primeNumber = (x) => {
  for (let i = 2; i <= Math.sqrt(x); i++) {
    if (x % i === 0) return false;
  }

  return true;
};

const getCombinations = (arr, arrLength) => {
  const result = [];

  if (arrLength === 1) return arr.map((el) => [el]);

  arr.map((item, idx, thisArr) => {
    const sliceArr = thisArr.slice(idx + 1);
    const numbersCase = getCombinations(sliceArr, arrLength - 1);
    const combines = numbersCase.map((value) => [item, ...value]);

    result.push(...combines);
  });

  return result;
};

/*
(ํ’€์ด1)
์ฒ˜์Œ์— ์กฐํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ผ๋Š” ๊ธ€์„ ๋ณด๊ณ  ์ด์šฉํ•ด ๋ดค๋Š”๋ฐ ํšจ์œจ๊ณผ ๊ฐ€๋…์„ฑ ๋‘˜ ๋‹ค ๋ณ„๋กœ์ธ ๊ฒƒ ๊ฐ™์ง€๋งŒ ํ‘ผ๊ฒŒ ์•„์‰ฌ์›Œ์„œ ๊ฐ€์ ธ์™”์Šต๋‹ˆ๋‹คใ…Žใ…Ž..
getCombinations๋ผ๋Š” ์ˆœ์„œ๊ฐ€ ์ƒ๊ด€์—†๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๊ณ  
๊ฐ๊ฐ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋ฐฐ์—ด์„ reduce๋กœ ๋”ํ•œ ํ›„์— ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜๋กœ ๊ฐ’๋“ค์„ ํ‰๊ฐ€ํ•ด์ค€ ํ›„
true์ผ ๊ฒฝ์šฐ์—๋งŒ result ๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ์ค€๋‹ค.
*/
  • ์žฌ๊ท€๋ฅผ ํ™œ์šฉํ•œ ์กฐํ•ฉ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด. ๊ด€๋ จ ์ •๋ณด๊ธ€์„ ๋ณธ์ ์ด ์žˆ์–ด์„œ ๋งŒ๋“ค์–ด ๋ดค๋Š”๋ฐ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ํ˜ผ์ž ์ •๋ณด์—†์ด ๋งŒ๋“ค์–ด ๋ณด๋ผ ํ–ˆ์œผ๋ฉด ๊ฐ€๋Šฅํ–ˆ์„์ง€๋Š”.. ๋ชจ๋ฅด๊ฒ ๋‹ค

ํ’€์ด2 ๐Ÿ™Ž๐Ÿป‍โ™‚๏ธ

function solution(nums) {
  let result = 0;

  for (let i = 0; i < nums.length - 2; i++) {
    for (let j = i + 1; j < nums.length; j++) {
      for (let k = j + 1; k < nums.length; k++) {
        const sumNumber = nums[i] + nums[j] + nums[k];

        if (primeNumber(sumNumber)) result++;
      }
    }
  }

  return result;
}

const primeNumber = (x) => {
  for (let i = 2; i <= Math.sqrt(x); i++) {
    if (x % i === 0) return false;
  }

  return true;
};

/*
(ํ’€์ด2)
3์ค‘ for๋ฌธ์„ ์ด์šฉํ•ด ๊ฐ๊ฐ์˜ ์ดˆ๊ธฐ๊ฐ’ ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€ +1 ์”ฉ ์ฆ๊ฐ€ ํ•ด์คŒ์œผ๋กœ์จ
nums๋ฐฐ์—ด์˜ 3๊ฐœ์˜ ๊ฐ’๋“ค์„ ๋”ํ•œ sumNumber ๊ฐ’์„ ๊ตฌํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋•Œ ์ฒซ๋ฒˆ์งธ for๋ฌธ์—์„œ ์กฐ๊ฑด์‹ -2๋ฅผ ํ•ด์ค„ ์ˆ˜ ์žˆ๋Š”๋ฐ
์ด์œ ๋Š” ์•ž์˜ 2๊ฐœ์˜ ๊ฐ’๊นŒ์ง€ ์ด๋ฏธ ๊ณ„์‚ฐ์„ ํ•˜๊ธฐ ๋•Œ๋ฌธ.
์ดํ›„์— ์†Œ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€ x์˜ ์ œ๊ณฑ๊ทผ ๊นŒ์ง€๋งŒ ๊ณ„์‚ฐ์„ ํ•ด์„œ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์งˆ ๊ฒฝ์šฐ ์†Œ์ˆ˜๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ false
์†Œ์ˆ˜์ผ ๊ฒฝ์šฐ true๋ฅผ ๋ฐ˜ํ™˜ํ•˜๊ณ  true์ผ ๊ฒฝ์šฐ result์˜ ๊ฐ’์„ ์ฆ๊ฐ์‹œ์ผœ ์†Œ์ˆ˜์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•œ๋‹ค.
*/
  • ๋ฐ˜๋ณต๋ฌธ์„ ํ†ตํ•œ ํ’€์ด.

 

ํ’€์ด2 ํ”ผ๋“œ๋ฐฑ

  • primeNumber ๋ผ๋Š” ํ•จ์ˆ˜๋ช… ๋ณด๋‹ค๋Š” isPrimeNumber๊ฐ€ ์ ์ ˆํ•ด ๋ณด์ธ๋‹ค๋Š” ํ”ผ๋“œ๋ฐฑ. ๋ฆฌํ„ด๊ฐ’์ด false true์ด๊ธฐ ๋•Œ๋ฌธ. (์˜์–ด ๊ณต๋ถ€ ์–ธ์ œํ•˜์ง€)