From 891f42306124c1634411d88bd0ca5ebc34063763 Mon Sep 17 00:00:00 2001 From: Win K <108077414+wink68@users.noreply.github.com> Date: Thu, 6 Jul 2023 00:17:18 +0900 Subject: [PATCH 1/6] =?UTF-8?q?Create=20Lv2=5Fk=EC=A7=84=EC=88=98=EC=97=90?= =?UTF-8?q?=EC=84=9C=20=EC=86=8C=EC=88=98=20=EA=B0=9C=EC=88=98=20=EA=B5=AC?= =?UTF-8?q?=ED=95=98=EA=B8=B0=5F1.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\352\265\254\355\225\230\352\270\260_1.js" | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 "k/programmers/\354\210\230\355\225\231/Lv2_k\354\247\204\354\210\230\354\227\220\354\204\234 \354\206\214\354\210\230 \352\260\234\354\210\230 \352\265\254\355\225\230\352\270\260_1.js" diff --git "a/k/programmers/\354\210\230\355\225\231/Lv2_k\354\247\204\354\210\230\354\227\220\354\204\234 \354\206\214\354\210\230 \352\260\234\354\210\230 \352\265\254\355\225\230\352\270\260_1.js" "b/k/programmers/\354\210\230\355\225\231/Lv2_k\354\247\204\354\210\230\354\227\220\354\204\234 \354\206\214\354\210\230 \352\260\234\354\210\230 \352\265\254\355\225\230\352\270\260_1.js" new file mode 100644 index 0000000..7f3f58f --- /dev/null +++ "b/k/programmers/\354\210\230\355\225\231/Lv2_k\354\247\204\354\210\230\354\227\220\354\204\234 \354\206\214\354\210\230 \352\260\234\354\210\230 \352\265\254\355\225\230\352\270\260_1.js" @@ -0,0 +1,22 @@ +function solution(n, k) { + let count = 0; + n.toString(k).split("0") + .map((num) => { + if (isPrime(Number(num))) { + count++; + } + }); + return count; +} + +function isPrime(num) { + if (num <= 1) { + return false; + } + for (let i=2; i < Math.sqrt(num); i++) { + if (num % i === 0) { // 약수가 있다면 소수가 아니다 + return false; + } + } + return true; +} From 49f5626a91e182fe134eb4c579b44cb43d9934bd Mon Sep 17 00:00:00 2001 From: Win K <108077414+wink68@users.noreply.github.com> Date: Thu, 6 Jul 2023 05:45:19 +0900 Subject: [PATCH 2/6] =?UTF-8?q?Create=20Lv1=5F=EB=8B=A4=ED=8A=B8=20?= =?UTF-8?q?=EA=B2=8C=EC=9E=84=5F1.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...355\212\270 \352\262\214\354\236\204_1.js" | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 "k/programmers/\353\254\270\354\236\220\354\227\264/Lv1_\353\213\244\355\212\270 \352\262\214\354\236\204_1.js" diff --git "a/k/programmers/\353\254\270\354\236\220\354\227\264/Lv1_\353\213\244\355\212\270 \352\262\214\354\236\204_1.js" "b/k/programmers/\353\254\270\354\236\220\354\227\264/Lv1_\353\213\244\355\212\270 \352\262\214\354\236\204_1.js" new file mode 100644 index 0000000..7f853e2 --- /dev/null +++ "b/k/programmers/\353\254\270\354\236\220\354\227\264/Lv1_\353\213\244\355\212\270 \352\262\214\354\236\204_1.js" @@ -0,0 +1,29 @@ +function solution(dartResult) { + const answer = []; + let tmp; + + for (let i=0; i < dartResult.length; i++) { + let item = dartResult[i]; + + if (!isNaN(Number(item))) { // 정수라면 + tmp = dartResult[i-1] == 1 ? 10 : Number(item); + } else { + switch (item) { + case 'S': answer.push(tmp); + break; + case 'D': answer.push(Math.pow(tmp, 2)); + break; + case 'T': answer.push(Math.pow(tmp, 3)); + break; + case '*': + answer[answer.length-2] = answer[answer.length-2] * 2; + answer[answer.length-1] = answer[answer.length-1] * 2; + break; + case '#': + answer[answer.length-1] = answer[answer.length-1] * (-1); + break; + } + } + } + return answer.reduce((acc, cur) => acc + cur, 0); +} From 7336c6f74f55ad6526548995ee5e5d4873dac93b Mon Sep 17 00:00:00 2001 From: Win K <108077414+wink68@users.noreply.github.com> Date: Thu, 6 Jul 2023 06:53:25 +0900 Subject: [PATCH 3/6] =?UTF-8?q?Create=20Lv2=5F=EC=95=95=EC=B6=95=5F1.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Lv2_\354\225\225\354\266\225_1.js" | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 "k/programmers/\353\254\270\354\236\220\354\227\264/Lv2_\354\225\225\354\266\225_1.js" diff --git "a/k/programmers/\353\254\270\354\236\220\354\227\264/Lv2_\354\225\225\354\266\225_1.js" "b/k/programmers/\353\254\270\354\236\220\354\227\264/Lv2_\354\225\225\354\266\225_1.js" new file mode 100644 index 0000000..2d78b19 --- /dev/null +++ "b/k/programmers/\353\254\270\354\236\220\354\227\264/Lv2_\354\225\225\354\266\225_1.js" @@ -0,0 +1,22 @@ +function solution(msg) { + const alphabet = ['A', 'B', 'C', 'D', 'E', 'F', 'G', + 'H', 'I', 'J', 'K', 'L', 'M', 'N', + 'O', 'P', 'Q', 'R', 'S', 'T', 'U', + 'V', 'W', 'X', 'Y', 'Z']; + let tmp = ''; + const answer = []; + + for (let i=0; i < msg.length; i++) { + tmp += msg[i]; + + if (!alphabet.includes(tmp)) { + answer.push(alphabet.indexOf(tmp.slice(0, -1)) +1); // 색인 번호 + alphabet.push(tmp); + tmp = msg[i]; // 현재 시점 + } + } + if (tmp) { + answer.push(alphabet.indexOf(tmp) +1) + } + return answer; +} From fffdcdaaf63eaf7e691fef83901e06d1647edbe9 Mon Sep 17 00:00:00 2001 From: Win K <108077414+wink68@users.noreply.github.com> Date: Wed, 12 Jul 2023 22:11:52 +0900 Subject: [PATCH 4/6] =?UTF-8?q?Create=20Lv2=5Fn=EC=A7=84=EC=88=98=20?= =?UTF-8?q?=EA=B2=8C=EC=9E=84=5F1.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...04\354\210\230 \352\262\214\354\236\204_1.js" | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 "k/programmers/\353\260\230\353\263\265\353\254\270/Lv2_n\354\247\204\354\210\230 \352\262\214\354\236\204_1.js" diff --git "a/k/programmers/\353\260\230\353\263\265\353\254\270/Lv2_n\354\247\204\354\210\230 \352\262\214\354\236\204_1.js" "b/k/programmers/\353\260\230\353\263\265\353\254\270/Lv2_n\354\247\204\354\210\230 \352\262\214\354\236\204_1.js" new file mode 100644 index 0000000..087ef4c --- /dev/null +++ "b/k/programmers/\353\260\230\353\263\265\353\254\270/Lv2_n\354\247\204\354\210\230 \352\262\214\354\236\204_1.js" @@ -0,0 +1,16 @@ +function solution(n, t, m, p) { + let num = ''; + let ans = ''; + + for (let i = 0; num.length < m * t; i++) { + num += i.toString(n).toUpperCase(); + } + num.split('').map((item, idx) => { + if (idx % m === (p-1)) { + if (ans.length < t) { + ans += item; + } + } + }); + return ans; +} From 3851e824998fe7c676555245e3a2a5f099923044 Mon Sep 17 00:00:00 2001 From: Win K <108077414+wink68@users.noreply.github.com> Date: Thu, 13 Jul 2023 02:34:57 +0900 Subject: [PATCH 5/6] =?UTF-8?q?Create=20Lv2=5F=EC=98=A4=ED=94=88=EC=B1=84?= =?UTF-8?q?=ED=8C=85=EB=B0=A9=5F1.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...\354\261\204\355\214\205\353\260\251_1.js" | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 "k/programmers/\352\265\254\355\230\204/Lv2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251_1.js" diff --git "a/k/programmers/\352\265\254\355\230\204/Lv2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251_1.js" "b/k/programmers/\352\265\254\355\230\204/Lv2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251_1.js" new file mode 100644 index 0000000..c085603 --- /dev/null +++ "b/k/programmers/\352\265\254\355\230\204/Lv2_\354\230\244\355\224\210\354\261\204\355\214\205\353\260\251_1.js" @@ -0,0 +1,24 @@ +function solution(record) { + const userInfo = {}; + const ans = []; + + // 유저 정보 + record.map((item) => { + const [command, uid, nickname] = item.split(' '); + + if (command === 'Enter') { + userInfo[uid] = nickname; + ans.push(`${uid}님이 들어왔습니다.`); + } else if (command === 'Change') { + userInfo[uid] = nickname; + } else if (command === 'Leave') { + ans.push(`${uid}님이 나갔습니다.`); + } + }); + // 입장, 퇴장 기록 + for (let i=0; i < ans.length; i++) { + let uid = ans[i].split('님')[0]; + ans[i] = ans[i].replace(uid, userInfo[uid]); + } + return ans; +} From 4a47f83e05817f3bacba6483ea649fec6a3a7259 Mon Sep 17 00:00:00 2001 From: Win K <108077414+wink68@users.noreply.github.com> Date: Thu, 13 Jul 2023 08:11:01 +0900 Subject: [PATCH 6/6] =?UTF-8?q?Create=20Lv2=5F=EC=A3=BC=EC=B0=A8=20?= =?UTF-8?q?=EC=9A=94=EA=B8=88=20=EA=B3=84=EC=82=B0=5F1.js?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...352\270\210 \352\263\204\354\202\260_1.js" | 42 +++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 "k/programmers/\352\265\254\355\230\204/Lv2_\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260_1.js" diff --git "a/k/programmers/\352\265\254\355\230\204/Lv2_\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260_1.js" "b/k/programmers/\352\265\254\355\230\204/Lv2_\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260_1.js" new file mode 100644 index 0000000..8719d3e --- /dev/null +++ "b/k/programmers/\352\265\254\355\230\204/Lv2_\354\243\274\354\260\250 \354\232\224\352\270\210 \352\263\204\354\202\260_1.js" @@ -0,0 +1,42 @@ +function solution(fees, records) { + const answer = []; + const carIn = {}; + let carOut = {}; + const [baseT, baseF, unitT, unitF] = fees; + + // 시간 계산 + records.map((item) => { + const [clock, num, record] = item.split(' '); + const [hour, min] = clock.split(':'); + const time = parseInt(hour) * 60 + parseInt(min); + + if (record === 'IN') { + carIn[num] = time; + } else { + carOut.hasOwnProperty(num) + ? carOut[num] = carOut[num] + time - carIn[num] + : carOut[num] = time - carIn[num]; + delete carIn[num]; + } + }); + // 오늘 출차하지 않은 차량 + for (const [num, time] of Object.entries(carIn)) { + carOut.hasOwnProperty(num) + ? carOut[num] = carOut[num] + 1439 - time + : carOut[num] = 1439 - time; + delete carIn[num]; + } + // 차량번호 오름차순 정렬 + carOut = Object.entries(carOut).sort((a,b) => a[0] - b[0]); + + // 요금 계산 + carOut.map((item) => { + const time = item[1]; + answer.push( + time <= baseT + ? baseF + : baseF + Math.ceil((time - baseT) / unitT) * unitF + ); + }) + return answer; +}