From b7adc3b52584498b4ea51bdf3babb54b7e2e96cb Mon Sep 17 00:00:00 2001 From: ExistenceOne <121415293+ExistenceOne@users.noreply.github.com> Date: Sun, 27 Oct 2024 22:25:29 +0900 Subject: [PATCH 1/7] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/problem2.js | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/problem2.js b/src/problem2.js index cebd07c..9cb1460 100644 --- a/src/problem2.js +++ b/src/problem2.js @@ -1,6 +1,12 @@ function problem2(cryptogram) { - var answer; - return answer; + const stack = []; + + [...cryptogram].forEach(char => { + if(stack.at(-1) != char) stack.push(char); + else stack.pop(); + }); + + return stack.toString().replaceAll(',',''); } module.exports = problem2; From ffbfe95cff03815a50f93bd9ae5312f0354e20a9 Mon Sep 17 00:00:00 2001 From: ExistenceOne <121415293+ExistenceOne@users.noreply.github.com> Date: Sun, 27 Oct 2024 23:04:59 +0900 Subject: [PATCH 2/7] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/problem1.js | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/problem1.js b/src/problem1.js index 9a14f2c..afae632 100644 --- a/src/problem1.js +++ b/src/problem1.js @@ -1,6 +1,31 @@ function problem1(pobi, crong) { - var answer; - return answer; + if (pobi[1]-pobi[0] != 1 || crong[1]-crong[0] != 1) return -1; + if (Math.min(pobi, crong) < 1 || Math.max(pobi, crong) > 400) return -1; + + const max_pobi = Math.max(...sumAndProduct(pobi)); + const max_crong = Math.max(...sumAndProduct(crong)); + + if (max_pobi == max_crong) return 0; + if (max_pobi > max_crong) return 1; + + else return 2; +} + +function sumAndProduct(arr){ + const ret = []; + + arr.forEach(page => { + const digits = []; + + while(page > 0){ + digits.push(page % 10); + page = parseInt(page / 10); + } + ret.push(digits.reduce((acc, cur) => acc + cur, 0)); // 누적 합 + ret.push(digits.reduce((acc, cur) => acc * cur, 1)); // 누적 곱 + }); + + return ret; } module.exports = problem1; From e39b94218e9a59ecb4ae90f3207dc7439b9d0684 Mon Sep 17 00:00:00 2001 From: ExistenceOne <121415293+ExistenceOne@users.noreply.github.com> Date: Sun, 27 Oct 2024 23:18:25 +0900 Subject: [PATCH 3/7] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/problem3.js | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/problem3.js b/src/problem3.js index 1baed28..a703c5a 100644 --- a/src/problem3.js +++ b/src/problem3.js @@ -1,6 +1,16 @@ function problem3(number) { - var answer; - return answer; + let count = 0; + for (let i=1; i<=number; ++i) count += count369(i); + return count; +} + +function count369(number){ + let count = 0; + while (number > 0){ + switch (number % 10) {case 3: case 6: case 9: ++count}; + number = parseInt(number / 10); + } + return count; } module.exports = problem3; From 84a329ab08ea8fb3c7dcb11875313660972d4b99 Mon Sep 17 00:00:00 2001 From: ExistenceOne <121415293+ExistenceOne@users.noreply.github.com> Date: Mon, 28 Oct 2024 00:04:56 +0900 Subject: [PATCH 4/7] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/problem4.js | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/problem4.js b/src/problem4.js index ee1d3bd..adeda5e 100644 --- a/src/problem4.js +++ b/src/problem4.js @@ -1,5 +1,15 @@ function problem4(word) { - var answer; + var answer = ""; + + [...word].forEach(char => { + if (/[A-Z]/.test(char)) + answer += String.fromCharCode(65+25-(char.charCodeAt()-65)); + else if (/[a-z]/.test(char)) + answer += String.fromCharCode(97+25-(char.charCodeAt()-97)); + else + answer += char; + }); + return answer; } From a9995580bc7c24f1646a1883ece33da2ad6bec0b Mon Sep 17 00:00:00 2001 From: ExistenceOne <121415293+ExistenceOne@users.noreply.github.com> Date: Mon, 28 Oct 2024 00:16:22 +0900 Subject: [PATCH 5/7] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/problem5.js | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/problem5.js b/src/problem5.js index 9368e87..f2f7a9b 100644 --- a/src/problem5.js +++ b/src/problem5.js @@ -1,5 +1,10 @@ function problem5(money) { - var answer; + const answer = []; + const denoms = [50000, 10000, 5000, 1000, 500, 100, 50, 10, 1]; + denoms.forEach(denom => { + answer.push(parseInt(money / denom)); + money %= denom; + }); return answer; } From 5be0c7488332aa3d9b2ead863b811b7a5df973b5 Mon Sep 17 00:00:00 2001 From: ExistenceOne <121415293+ExistenceOne@users.noreply.github.com> Date: Mon, 28 Oct 2024 00:36:38 +0900 Subject: [PATCH 6/7] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/problem6.js | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/problem6.js b/src/problem6.js index 3f842b5..e83d254 100644 --- a/src/problem6.js +++ b/src/problem6.js @@ -1,6 +1,21 @@ function problem6(forms) { - var answer; - return answer; + const set = new Set(); + const map = new Map(); + + forms.forEach(([email, nickname]) => { + for (let i=0; i Date: Mon, 28 Oct 2024 00:51:35 +0900 Subject: [PATCH 7/7] =?UTF-8?q?feat:=20=EB=AC=B8=EC=A0=9C7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/problem7.js | 38 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 36 insertions(+), 2 deletions(-) diff --git a/src/problem7.js b/src/problem7.js index ee1bb9d..70fcaf2 100644 --- a/src/problem7.js +++ b/src/problem7.js @@ -1,6 +1,40 @@ function problem7(user, friends, visitors) { - var answer; - return answer; + const map_friends = new Map(); + const map_scores = new Map(); + + friends.forEach(([a,b]) => { + if (!map_friends.has(a)) map_friends.set(a, new Set()); + if (!map_friends.has(b)) map_friends.set(b, new Set()); + map_friends.get(a).add(b); + map_friends.get(b).add(a); + }); + + const user_friends = map_friends.get(user) || new Set(); + + map_friends.forEach((set_friends, friend) => { + if (friend === user || user_friends.has(friend)) return; + let count = 0; + set_friends.forEach(person => { + if (user_friends.has(person)) ++count; + }); + + if (count > 0) + map_scores.set(friend, (map_scores.get(friend) || 0) + count * 10); + }); + + visitors.forEach(visitor => { + if (visitor !== user && !user_friends.has(visitor)){ + map_scores.set(visitor, (map_scores.get(visitor) || 0) + 1); + } + }); + + const ret = Array.from(map_scores.entries()) + .filter(([, score]) => score > 0) + .sort((a,b) => b[1]-a[1] || a[0].localeCompare(b[0])) + .slice(0,5) + .map(([friend]) => friend); + + return ret; } module.exports = problem7;