ํ์ด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์ด๊ธฐ ๋๋ฌธ. (์์ด ๊ณต๋ถ ์ธ์ ํ์ง)
'์๊ณ ๋ฆฌ์ฆ & ๋ฌธ์ ํ์ด > Programmers-1' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฒด์ก๋ณต (0) | 2022.10.19 |
---|---|
์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2022.10.09 |
๋ชจ์๊ณ ์ฌ (0) | 2022.10.09 |
ํฐ์ผ๋ชฌ (0) | 2022.10.09 |
์ต์ ์ง์ฌ๊ฐํ (0) | 2022.10.06 |