From d2b8c6e2517267c65c647d01796eef161a2203c4 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Tue, 21 Nov 2023 23:12:35 +0900 Subject: [PATCH 1/6] =?UTF-8?q?level=201=20-=20=EC=86=8C=EC=88=98=20?= =?UTF-8?q?=EC=B0=BE=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...14\354\210\230\354\260\276\352\270\260.js" | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 "\354\227\260\354\204\234/week7/level 1/\354\206\214\354\210\230\354\260\276\352\270\260.js" diff --git "a/\354\227\260\354\204\234/week7/level 1/\354\206\214\354\210\230\354\260\276\352\270\260.js" "b/\354\227\260\354\204\234/week7/level 1/\354\206\214\354\210\230\354\260\276\352\270\260.js" new file mode 100644 index 0000000..62d3b1b --- /dev/null +++ "b/\354\227\260\354\204\234/week7/level 1/\354\206\214\354\210\230\354\260\276\352\270\260.js" @@ -0,0 +1,19 @@ +function solution(n) { + // 2부터 n까지의 수로 구성된 Set + const s = new Set(); + for (let i = 2; i <= n; i++) { + s.add(i); + } + + // 2부터 n의 제곱근보다 작은 최대 정수까지 + for (let j = 2; j < Math.sqrt(n); j++) { + // Set에 해당 수가 포함되면 + if (s.has(j)) { + // 그 수를 제외하고 그 수의 배수는 모두 삭제 + for (let k = j * 2; k <= n; k += j) { + s.delete(k); + } + } + } + return s.size; +} From bc50a5067f13c3976dbb55cb99a520f3b522a0dd Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Tue, 21 Nov 2023 23:13:34 +0900 Subject: [PATCH 2/6] =?UTF-8?q?level=202=20-=20=EC=A0=84=ED=99=94=EB=B2=88?= =?UTF-8?q?=ED=98=B8=20=EB=AA=A9=EB=A1=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\262\210\355\230\270\353\252\251\353\241\235.js" | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 "\354\227\260\354\204\234/week7/level 2/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.js" diff --git "a/\354\227\260\354\204\234/week7/level 2/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.js" "b/\354\227\260\354\204\234/week7/level 2/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.js" new file mode 100644 index 0000000..c566e6a --- /dev/null +++ "b/\354\227\260\354\204\234/week7/level 2/\354\240\204\355\231\224\353\262\210\355\230\270\353\252\251\353\241\235.js" @@ -0,0 +1,13 @@ +function solution(phone_book) { + phone_book.sort(); + + for (let i = 0; i < phone_book.length - 1; i++) { + if ( + phone_book[i] === phone_book[i + 1].substring(0, phone_book[i].length) + ) { + return false; + } + } + + return true; +} From f3d67c415a843417d125a54cca730937738b31f6 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 26 Nov 2023 17:20:42 +0900 Subject: [PATCH 3/6] =?UTF-8?q?level=201=20-=203=EC=A7=84=EB=B2=95=20?= =?UTF-8?q?=EB=92=A4=EC=A7=91=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...247\204\353\262\225\353\222\244\354\247\221\352\270\260.js" | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 "\354\227\260\354\204\234/week7/level 1/3\354\247\204\353\262\225\353\222\244\354\247\221\352\270\260.js" diff --git "a/\354\227\260\354\204\234/week7/level 1/3\354\247\204\353\262\225\353\222\244\354\247\221\352\270\260.js" "b/\354\227\260\354\204\234/week7/level 1/3\354\247\204\353\262\225\353\222\244\354\247\221\352\270\260.js" new file mode 100644 index 0000000..4a1d0a6 --- /dev/null +++ "b/\354\227\260\354\204\234/week7/level 1/3\354\247\204\353\262\225\353\222\244\354\247\221\352\270\260.js" @@ -0,0 +1,3 @@ +function solution(n) { + return parseInt(n.toString(3).split("").reverse().join(""), 3); +} From 86bef6f8df1cbef8c56d20d5bbca3a4739b9c8fd Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 26 Nov 2023 17:21:31 +0900 Subject: [PATCH 4/6] =?UTF-8?q?level=202=20-=20=EB=8B=A4=EC=9D=8C=20?= =?UTF-8?q?=ED=81=B0=20=EC=88=AB=EC=9E=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...354\235\214\355\201\260\354\210\253\354\236\220.js" | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 "\354\227\260\354\204\234/week7/level 2/\353\213\244\354\235\214\355\201\260\354\210\253\354\236\220.js" diff --git "a/\354\227\260\354\204\234/week7/level 2/\353\213\244\354\235\214\355\201\260\354\210\253\354\236\220.js" "b/\354\227\260\354\204\234/week7/level 2/\353\213\244\354\235\214\355\201\260\354\210\253\354\236\220.js" new file mode 100644 index 0000000..9eccce4 --- /dev/null +++ "b/\354\227\260\354\204\234/week7/level 2/\353\213\244\354\235\214\355\201\260\354\210\253\354\236\220.js" @@ -0,0 +1,10 @@ +function solution(n) { + const cntOneBinary = (num) => num.toString(2).replace(/0/gi, "").length; + + let answer = n + 1; + + while (answer > n) { + if (cntOneBinary(answer) === cntOneBinary(n)) return answer; + answer++; + } +} From eb298f135f8f1ad66ec3f3dcedc3a592d51746ef Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 26 Nov 2023 21:04:37 +0900 Subject: [PATCH 5/6] =?UTF-8?q?level=201=20-=20=EA=B8=B0=EC=82=AC=EB=8B=A8?= =?UTF-8?q?=EC=9B=90=EC=9D=98=20=EB=AC=B4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\233\220\354\235\230\353\254\264\352\270\260.js" | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 "\354\227\260\354\204\234/week7/level 1/\352\270\260\354\202\254\353\213\250\354\233\220\354\235\230\353\254\264\352\270\260.js" diff --git "a/\354\227\260\354\204\234/week7/level 1/\352\270\260\354\202\254\353\213\250\354\233\220\354\235\230\353\254\264\352\270\260.js" "b/\354\227\260\354\204\234/week7/level 1/\352\270\260\354\202\254\353\213\250\354\233\220\354\235\230\353\254\264\352\270\260.js" new file mode 100644 index 0000000..bdc9062 --- /dev/null +++ "b/\354\227\260\354\204\234/week7/level 1/\352\270\260\354\202\254\353\213\250\354\233\220\354\235\230\353\254\264\352\270\260.js" @@ -0,0 +1,13 @@ +function solution(number, limit, power) { + let answer = 0; + for (let n = 1; n <= number; n++) { + let count = 0; + for (let j = 1; j * j <= n; j++) { + if (j * j == n) count++; + else if (n % j == 0) count += 2; + } + if (count > limit) count = power; + answer += count; + } + return answer; +} From 463bc5908c15405c1920c8e4c2e373b53d5d4c0a Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 26 Nov 2023 21:07:31 +0900 Subject: [PATCH 6/6] =?UTF-8?q?level=202=20-=20=ED=81=B0=20=EC=88=98=20?= =?UTF-8?q?=EB=A7=8C=EB=93=A4=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...0\230\353\247\214\353\223\244\352\270\260.js" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "\354\227\260\354\204\234/week7/level 2/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" diff --git "a/\354\227\260\354\204\234/week7/level 2/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" "b/\354\227\260\354\204\234/week7/level 2/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" new file mode 100644 index 0000000..9e85f39 --- /dev/null +++ "b/\354\227\260\354\204\234/week7/level 2/\355\201\260\354\210\230\353\247\214\353\223\244\352\270\260.js" @@ -0,0 +1,16 @@ +function solution(number, k) { + let stack = []; + for (let i = 0; i < number.length; i++) { + let value = number[i]; + //마지막 숫자와 현재 숫자를 비교하며 현재 숫자가 더 크면 해당 숫자를 pop + while (k > 0 && stack[stack.length - 1] < value) { + // 현재 숫자보다 큰 수가 나올때까지 최대 k번 반복 + stack.pop(); + k--; + } + stack.push(value); + } + // 모든 숫자를 비교한 후 k가 0보다 크면 남은 k만큼 뒤에서 제거 + stack.splice(stack.length - k, k); + return stack.join(""); +}