diff --git a/190611/190617/problem.md b/190611/190617/problem.md new file mode 100644 index 0000000..1ba81b0 --- /dev/null +++ b/190611/190617/problem.md @@ -0,0 +1,4 @@ +# programmers 타겟 넘버 + +- https://programmers.co.kr/learn/courses/30/lessons/43165 + diff --git a/190611/honux/test.js b/190611/honux/test.js new file mode 100644 index 0000000..cdad665 --- /dev/null +++ b/190611/honux/test.js @@ -0,0 +1,21 @@ +let arr = [1,2,3,4]; + +function swap(arr, i, j) { + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; +} + +function all(arr, n) { + if (n == arr.length - 1) { + console.log(arr); + } + for (let i = n; i < arr.length ; i++) { + swap(arr, n, i); + all(arr, n + 1); + swap(arr, n, i); + } +} + +all(arr, 0); + diff --git a/190611/honux/test2.js b/190611/honux/test2.js new file mode 100644 index 0000000..c2aa652 --- /dev/null +++ b/190611/honux/test2.js @@ -0,0 +1,22 @@ +function swap(arr, i, j) { + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; +} + +function perm(arr, k, j = 0) { + if (j === k){ + console.log(arr.slice(0,j)); + return; + } + for (let i = j; i < arr.length; i++) { + swap(arr, i, j); + perm(arr, k, j + 1); + swap(arr, i, j); + } +} + +arr = [1, 2, 3]; +perm(arr, 1); +console.log("=========="); +perm(arr, 2); diff --git a/190611/honux/try1.js b/190611/honux/try1.js new file mode 100644 index 0000000..fac5e1a --- /dev/null +++ b/190611/honux/try1.js @@ -0,0 +1,43 @@ +const prime = [] +const maxn = 9999999; +let count = 0; + +for (let i = 0; i <= maxn; i++) { + prime.push(true); +} +prime[0] = prime[1] = false; + +for (let i = 2; i<= maxn; i++) { + if(!prime[i]) continue; + for (let j = i * 2; j <= maxn; j += i) { + prime[j] = false; + } +} + +function swap(arr, i, j) { + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; +} + +function genNum(arr, i) { + if (i == arr.length - 1) { + const n = Number(arr.join("")); + console.log(n); + if (prime[n]) count++; + return; + } + for (let j = i; j < arr.length; j++) { + swap(arr, i, j); + genNum(arr, i + 1); + swap(arr, i, j); + } +} + +function solution(numbers) { + count = 0; + let a = numbers.split(""); + console.log(a); + genNum(a, 0); + return count; +} diff --git a/190611/honux/try2.js b/190611/honux/try2.js new file mode 100644 index 0000000..e9e278d --- /dev/null +++ b/190611/honux/try2.js @@ -0,0 +1,50 @@ +const prime = [] +const maxn = 9999999; +let count = 0; + +for (let i = 0; i <= maxn; i++) { + prime.push(true); +} +prime[0] = prime[1] = false; + +for (let i = 2; i<= maxn; i++) { + if(!prime[i]) continue; + for (let j = i * 2; j <= maxn; j += i) { + prime[j] = false; + } +} + +function swap(arr, i, j) { + const temp = arr[i]; + arr[i] = arr[j]; + arr[j] = temp; +} + +function perm(arr, k, j = 0) { + if (j === k){ + const n = Number(arr.slice(0, j).join("")); + console.log(n); + //count only once + if (prime[n]) { + count++; + prime[n] = false; + } + return; + } + for (let i = j; i < arr.length; i++) { + swap(arr, i, j); + perm(arr, k, j + 1); + swap(arr, i, j); + } +} + +function solution(numbers) { + count = 0; + let a = numbers.split(""); + for (let i = 1; i <= numbers.length; i++) { + perm(a, i); + } + return count; +} + +console.log(solution("17"));