From e90e9bb7567c9161136ac10a67b1343130577825 Mon Sep 17 00:00:00 2001 From: Chloekkk Date: Sun, 30 Jan 2022 17:43:34 +0900 Subject: [PATCH] week6 nkim --- .../\354\213\244\355\214\250\354\234\250.js" | 21 ++++++++++++ ...0 \353\215\224\355\225\230\352\270\260.js" | 16 +++++++++ .../\354\262\264\354\234\241\353\263\265.js" | 34 +++++++++++++++++++ 3 files changed, 71 insertions(+) create mode 100644 "nkim/week6/\354\213\244\355\214\250\354\234\250.js" create mode 100644 "nkim/week6/\354\227\206\353\212\224 \354\210\253\354\236\220 \353\215\224\355\225\230\352\270\260.js" create mode 100644 "nkim/week6/\354\262\264\354\234\241\353\263\265.js" diff --git "a/nkim/week6/\354\213\244\355\214\250\354\234\250.js" "b/nkim/week6/\354\213\244\355\214\250\354\234\250.js" new file mode 100644 index 0000000..1105e9a --- /dev/null +++ "b/nkim/week6/\354\213\244\355\214\250\354\234\250.js" @@ -0,0 +1,21 @@ +function solution(N, stages) { + var answer = []; + const report = {}; + [...new Array(N)].forEach((_, i) => { + report[i + 1] = { stop: 0, dare: 0, fail_rate: 0 }; + }); + + Object.keys(report).forEach((stage) => { + report[stage].stop = stages.filter((s) => s == stage).length; + report[stage].dare = stages.filter((s) => s >= stage).length; + }); + Object.entries(report).forEach(([stage, val]) => { + const { stop, dare } = val; + report[stage].fail_rate = stop / dare; + }); + answer = Object.keys(report).sort( + (i, j) => report[j].fail_rate - report[i].fail_rate + ); + answer = answer.map((data) => parseInt(data)); + return answer; +} diff --git "a/nkim/week6/\354\227\206\353\212\224 \354\210\253\354\236\220 \353\215\224\355\225\230\352\270\260.js" "b/nkim/week6/\354\227\206\353\212\224 \354\210\253\354\236\220 \353\215\224\355\225\230\352\270\260.js" new file mode 100644 index 0000000..9b10564 --- /dev/null +++ "b/nkim/week6/\354\227\206\353\212\224 \354\210\253\354\236\220 \353\215\224\355\225\230\352\270\260.js" @@ -0,0 +1,16 @@ +function solution(numbers) { + var answer = 0; + const numObj = {}; + + [...new Array(10)].forEach((_, i) => { + numObj[i] = 0; + }); + numbers.forEach((num) => { + numObj[num]++; + }); + Object.entries(numObj).forEach(([num, cnt]) => { + if (!cnt) answer += parseInt(num); + }); + + return answer; +} diff --git "a/nkim/week6/\354\262\264\354\234\241\353\263\265.js" "b/nkim/week6/\354\262\264\354\234\241\353\263\265.js" new file mode 100644 index 0000000..9ae35b2 --- /dev/null +++ "b/nkim/week6/\354\262\264\354\234\241\353\263\265.js" @@ -0,0 +1,34 @@ +function solution(n, lost, reserve) { + var answer = n - lost.length; + const lost_arr = lost.sort((a, b) => a - b); + const re_arr = reserve + .filter((re, i) => { + const idx = lost_arr.indexOf(re); + const flag = idx != -1; + if (flag) { + lost_arr.splice(idx, 1); + answer++; + } + return !flag; + }) + .sort((a, b) => a - b); + + re_arr.forEach((re, i) => { + let idx; + idx = lost_arr.indexOf(re - 1); + console.log(idx); + if (idx != -1) { + lost_arr.splice(idx, 1); + answer++; + return false; + } + idx = lost_arr.indexOf(re + 1); + if (idx != -1) { + lost_arr.splice(idx, 1); + answer++; + return false; + } + }); + + return answer; +}