From e3bfd2f5f9b154cdc9fe310b69a1ddd0354c8d7a Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Thu, 30 Nov 2023 02:48:54 +0900 Subject: [PATCH 01/10] =?UTF-8?q?level=201=20-=20=EC=98=88=EC=82=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week8/level 1/\354\230\210\354\202\260.js" | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 1/\354\230\210\354\202\260.js" diff --git "a/\354\227\260\354\204\234/week8/level 1/\354\230\210\354\202\260.js" "b/\354\227\260\354\204\234/week8/level 1/\354\230\210\354\202\260.js" new file mode 100644 index 0000000..8bf2634 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 1/\354\230\210\354\202\260.js" @@ -0,0 +1,7 @@ +function solution(d, budget) { + return d + .sort((a, b) => a - b) + .reduce((count, price) => { + return count + Number((budget -= price) >= 0); + }, 0); +} From 9575ae417ca63fa0fd2bf3fdf2818758114e0b85 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Thu, 30 Nov 2023 02:49:01 +0900 Subject: [PATCH 02/10] =?UTF-8?q?level=202=20-=20=EC=88=AB=EC=9E=90?= =?UTF-8?q?=EC=9D=98=20=ED=91=9C=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...220\354\235\230\355\221\234\355\230\204.js" | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 2/\354\210\253\354\236\220\354\235\230\355\221\234\355\230\204.js" diff --git "a/\354\227\260\354\204\234/week8/level 2/\354\210\253\354\236\220\354\235\230\355\221\234\355\230\204.js" "b/\354\227\260\354\204\234/week8/level 2/\354\210\253\354\236\220\354\235\230\355\221\234\355\230\204.js" new file mode 100644 index 0000000..e37e28e --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 2/\354\210\253\354\236\220\354\235\230\355\221\234\355\230\204.js" @@ -0,0 +1,18 @@ +function solution(n) { + let answer = 0; + let cnt = 0; + for (let i = 1; i <= n; i++) { + for (let j = i; j <= n; j++) { + answer += j; + if (answer === n) { + cnt++; + answer = 0; + break; + } else if (answer > n) { + answer = 0; + break; + } + } + } + return cnt; +} From 19b1edf22eaa9b6c33a9dc0dd3af5b290b349d92 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Fri, 1 Dec 2023 16:09:33 +0900 Subject: [PATCH 03/10] =?UTF-8?q?level=201=20-=202016=EB=85=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week8/level 1/2016\353\205\204.js" | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 1/2016\353\205\204.js" diff --git "a/\354\227\260\354\204\234/week8/level 1/2016\353\205\204.js" "b/\354\227\260\354\204\234/week8/level 1/2016\353\205\204.js" new file mode 100644 index 0000000..63c7525 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 1/2016\353\205\204.js" @@ -0,0 +1,22 @@ +function solution(a, b) { + //윤년은 2월 29일까지 있음 + let answer = ""; + let sum_day = 0; + const day = ["THU", "FRI", "SAT", "SUN", "MON", "TUE", "WED"]; + const month = [31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; + for (let i = 0; i < a - 1; i++) { + //월별 일 수 더하기 + sum_day += month[i]; + } + sum_day += b; + answer += day[sum_day % 7]; + return answer; +} + +//다른 풀이 new Date() 활용 +function solution(a, b) { + let day = ["SUN", "MON", "TUE", "WED", "THU", "FRI", "SAT"]; + let date = new Date(`${a}, ${b}, 2016`).getDay(); + //getDay는 날짜의 요일을 0~6으로 바꿔주는 메소드 + return day[date]; +} From 1b4bfed7cfa54ab7b34c0209410798c45b6c2ef1 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Fri, 1 Dec 2023 16:14:11 +0900 Subject: [PATCH 04/10] =?UTF-8?q?level=202=20-=20=ED=8A=9C=ED=94=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../week8/level 2/\355\212\234\355\224\214.js" | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 2/\355\212\234\355\224\214.js" diff --git "a/\354\227\260\354\204\234/week8/level 2/\355\212\234\355\224\214.js" "b/\354\227\260\354\204\234/week8/level 2/\355\212\234\355\224\214.js" new file mode 100644 index 0000000..ca69e68 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 2/\355\212\234\355\224\214.js" @@ -0,0 +1,11 @@ +function solution(s) { + const answer = []; + const arr = JSON.parse(s.replace(/{/g, "[").replace(/}/g, "]")); + arr.sort((a, b) => a.length - b.length); + arr.forEach((col) => { + col.forEach((row) => { + if (!answer.includes(row)) answer.push(row); + }); + }); + return answer; +} From 13d2fcde62e22a444eb463b1b2c981a9ff095b32 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sat, 2 Dec 2023 16:28:09 +0900 Subject: [PATCH 05/10] =?UTF-8?q?level=201=20-=20=EC=86=8C=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 --- ...30\353\247\214\353\223\244\352\270\260.js" | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 1/\354\206\214\354\210\230\353\247\214\353\223\244\352\270\260.js" diff --git "a/\354\227\260\354\204\234/week8/level 1/\354\206\214\354\210\230\353\247\214\353\223\244\352\270\260.js" "b/\354\227\260\354\204\234/week8/level 1/\354\206\214\354\210\230\353\247\214\353\223\244\352\270\260.js" new file mode 100644 index 0000000..f166e16 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 1/\354\206\214\354\210\230\353\247\214\353\223\244\352\270\260.js" @@ -0,0 +1,20 @@ +function solution(nums) { + let arr = []; + for (let i = 0; i < nums.length; i++) { + for (let j = i + 1; j < nums.length; j++) { + for (let k = j + 1; k < nums.length; k++) { + arr.push(nums[i] + nums[j] + nums[k]); + } + } + } + + //소수인지 판별 + return arr.filter((v) => { + if (v < 2) return false; + + for (let i = 2; i <= Math.sqrt(v); i++) { + if (v % i === 0) return false; + } + return true; + }).length; +} From 42d16beed86db7269e74397fdb2cdff90e3d3a6d Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sat, 2 Dec 2023 23:50:56 +0900 Subject: [PATCH 06/10] =?UTF-8?q?level=202=20-=20=EB=AA=A8=EC=9D=8C?= =?UTF-8?q?=EC=82=AC=EC=A0=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...50\354\235\214\354\202\254\354\240\204.js" | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 2/\353\252\250\354\235\214\354\202\254\354\240\204.js" diff --git "a/\354\227\260\354\204\234/week8/level 2/\353\252\250\354\235\214\354\202\254\354\240\204.js" "b/\354\227\260\354\204\234/week8/level 2/\353\252\250\354\235\214\354\202\254\354\240\204.js" new file mode 100644 index 0000000..ae766b6 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 2/\353\252\250\354\235\214\354\202\254\354\240\204.js" @@ -0,0 +1,53 @@ +function solution(word) { + const stack1 = ["A", "E", "I", "O", "U"], + stack2 = [], + stack3 = [], + stack4 = [], + stack5 = []; + + stack1.forEach((str) => { + for (let i = 0; i <= 4; i++) { + stack2.push(str.concat(stack1[i])); + } + }); + + stack2.forEach((str) => { + for (let i = 0; i <= 4; i++) { + stack3.push(str.concat(stack1[i])); + } + }); + + stack3.forEach((str) => { + for (let i = 0; i <= 4; i++) { + stack4.push(str.concat(stack1[i])); + } + }); + + stack4.forEach((str) => { + for (let i = 0; i <= 4; i++) { + stack5.push(str.concat(stack1[i])); + } + }); + + const words = [...stack1, ...stack2, ...stack3, ...stack4, ...stack5]; + + words.sort(); + const answer = words.indexOf(word) + 1; + return answer; +} + +//다른 풀이 - 각 자리수별 경우의 수 구하기 +function solution(word) { + const obj = { + A: 0, + E: 1, + I: 2, + O: 3, + U: 4, + }; + const plus = [781, 156, 31, 6, 1]; + return word + .split("") + .reduce((acc, ch, idx) => acc + obj[ch] * plus[idx] + 1, 0); +} +// 출처 : https://jinn2u.tistory.com/9 From 0cd6946c74dad59a1a90f50e57c4f5eabb81062f Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 3 Dec 2023 00:01:15 +0900 Subject: [PATCH 07/10] =?UTF-8?q?level=201=20-=20=EA=B8=B0=EC=82=AC=20?= =?UTF-8?q?=EB=8B=A8=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/week8/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/week8/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/week8/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..a5b99c6 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/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) { + var 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 cf25af66347f419073772fc3787fde43f56593fc Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 3 Dec 2023 00:01:25 +0900 Subject: [PATCH 08/10] =?UTF-8?q?level=202=20-=20=ED=83=80=EA=B2=9F=20?= =?UTF-8?q?=EB=84=98=EB=B2=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...3\200\352\262\237\353\204\230\353\262\204.js" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 2/\355\203\200\352\262\237\353\204\230\353\262\204.js" diff --git "a/\354\227\260\354\204\234/week8/level 2/\355\203\200\352\262\237\353\204\230\353\262\204.js" "b/\354\227\260\354\204\234/week8/level 2/\355\203\200\352\262\237\353\204\230\353\262\204.js" new file mode 100644 index 0000000..44fa620 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 2/\355\203\200\352\262\237\353\204\230\353\262\204.js" @@ -0,0 +1,16 @@ +function solution(numbers, target) { + let answer = 0; + dfs(0, 0); + + function dfs(x, value) { + if (x < numbers.length) { + dfs(x + 1, value + numbers[x]); + dfs(x + 1, value - numbers[x]); + } else { + if (value === target) { + answer++; + } + } + } + return answer; +} From 988660880d36ad462431c48ab84dee977850d2ac Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 3 Dec 2023 21:40:23 +0900 Subject: [PATCH 09/10] =?UTF-8?q?level=201=20-=20=EC=B9=B4=EB=93=9C?= =?UTF-8?q?=EB=AD=89=EC=B9=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...71\264\353\223\234\353\255\211\354\271\230.js" | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 1/\354\271\264\353\223\234\353\255\211\354\271\230.js" diff --git "a/\354\227\260\354\204\234/week8/level 1/\354\271\264\353\223\234\353\255\211\354\271\230.js" "b/\354\227\260\354\204\234/week8/level 1/\354\271\264\353\223\234\353\255\211\354\271\230.js" new file mode 100644 index 0000000..71f12e5 --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 1/\354\271\264\353\223\234\353\255\211\354\271\230.js" @@ -0,0 +1,15 @@ +function solution(cards1, cards2, goal) { + let answer = true; + + goal.map((targetWord) => { + if (cards1[0] === targetWord) { + cards1.shift(); + } else if (cards2[0] === targetWord) { + cards2.shift(); + } else { + answer = false; + } + }); + + return answer ? "Yes" : "No"; +} From b7d44926e6bcd3e0fd729e10cc3b3954900f9940 Mon Sep 17 00:00:00 2001 From: Yeonseo-Jo Date: Sun, 3 Dec 2023 21:40:34 +0900 Subject: [PATCH 10/10] =?UTF-8?q?level=202=20-=20=EA=B4=84=ED=98=B8=20?= =?UTF-8?q?=ED=9A=8C=EC=A0=84=ED=95=98=EA=B8=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...14\354\240\204\355\225\230\352\270\260.js" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "\354\227\260\354\204\234/week8/level 2/\352\264\204\355\230\270\355\232\214\354\240\204\355\225\230\352\270\260.js" diff --git "a/\354\227\260\354\204\234/week8/level 2/\352\264\204\355\230\270\355\232\214\354\240\204\355\225\230\352\270\260.js" "b/\354\227\260\354\204\234/week8/level 2/\352\264\204\355\230\270\355\232\214\354\240\204\355\225\230\352\270\260.js" new file mode 100644 index 0000000..0b5a6fa --- /dev/null +++ "b/\354\227\260\354\204\234/week8/level 2/\352\264\204\355\230\270\355\232\214\354\240\204\355\225\230\352\270\260.js" @@ -0,0 +1,29 @@ +function solution(s) { + if (s.length % 2 === 1) return 0; + + let answer = 0; + const correctSet = { + "}": "{", + "]": "[", + ")": "(", + }; + + for (let i = 0; i < s.length; i++) { + const stack = []; + const rotate = s.slice(i) + s.slice(0, i); + let flag = true; + rotate.split("").forEach((target) => { + if (target === "{" || target === "[" || target === "(") { + stack.push(target); + } else { + if (stack.pop() !== correctSet[target]) { + flag = false; + return; + } + } + }); + + if (flag) answer++; + } + return answer; +}