From 44c55629c413b79b9a5bff197a589e53c5f071b6 Mon Sep 17 00:00:00 2001 From: seyoung choi Date: Wed, 3 May 2023 19:10:33 +0900 Subject: [PATCH] =?UTF-8?q?=EC=B5=9C=EC=A2=85=20=EC=BD=94=EB=93=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main.js" | 53 +++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 "programmers/Lv.2/[3\354\260\250] \355\214\214\354\235\274\353\252\205 \354\240\225\353\240\254/main.js" diff --git "a/programmers/Lv.2/[3\354\260\250] \355\214\214\354\235\274\353\252\205 \354\240\225\353\240\254/main.js" "b/programmers/Lv.2/[3\354\260\250] \355\214\214\354\235\274\353\252\205 \354\240\225\353\240\254/main.js" new file mode 100644 index 0000000..aa9c1c0 --- /dev/null +++ "b/programmers/Lv.2/[3\354\260\250] \355\214\214\354\235\274\353\252\205 \354\240\225\353\240\254/main.js" @@ -0,0 +1,53 @@ +function solution(files) { + const answer = []; + + function checkNum(startIdx, str) { + for (let i = startIdx; i < str.length; i++) { + if (startIdx === 0 && !isNaN(str[i]) && str[i] !== " ") return i; + else if (startIdx !== 0 && isNaN(str[i])) return i; + } + } + answer.push(files[0]); + for (let i = 1; i < files.length; i++) { + let cur = files[i].toLowerCase(); + let flag = false; + + for (let k = 0; k < answer.length; k++) { + if ( + cur.slice(0, checkNum(0, cur)) < + answer[k].slice(0, checkNum(0, answer[k])).toLowerCase() + ) { + answer.splice(k, 0, files[i]); + flag = true; + break; + } else if ( + cur.slice(0, checkNum(0, cur)) > + answer[k].slice(0, checkNum(0, answer[k])).toLowerCase() + ) + continue; + + if ( + Number( + cur + .slice(checkNum(0, cur), checkNum(checkNum(0, cur), cur)) + .slice(0, 5) + ) < + Number( + answer[k] + .slice( + checkNum(0, answer[k]), + checkNum(checkNum(0, answer[k]), answer[k]) + ) + .slice(0, 5) + ) + ) { + answer.splice(k, 0, files[i]); + flag = true; + break; + } + } + if (!flag) answer.push(files[i]); + } + + return answer; +}