From dc4fb83dc5c82479a776533273a9b70124542e61 Mon Sep 17 00:00:00 2001 From: leesky Date: Tue, 26 Apr 2022 10:36:25 +0900 Subject: [PATCH] =?UTF-8?q?Add=2020220426=20level2=20=EC=98=88=EC=83=81=20?= =?UTF-8?q?=EB=8C=80=EC=A7=84=ED=91=9C=20=ED=92=80=EC=9D=B4=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...1-\353\214\200\354\247\204\355\221\234.js" | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git "a/level-2/\354\230\210\354\203\201-\353\214\200\354\247\204\355\221\234.js" "b/level-2/\354\230\210\354\203\201-\353\214\200\354\247\204\355\221\234.js" index ebc2acb..c2072b6 100644 --- "a/level-2/\354\230\210\354\203\201-\353\214\200\354\247\204\355\221\234.js" +++ "b/level-2/\354\230\210\354\203\201-\353\214\200\354\247\204\355\221\234.js" @@ -13,3 +13,30 @@ function solution(n, a, b) { } return currentRound } + +//정답 2 - le2sky +function solution(n, a, b) { + let arr = Array.from({ length: n }, () => 0) + arr[b - 1] = "B" + arr[a - 1] = "A" + + const isDiff = () => { + return ( + (arr.indexOf("A") + 1 > arr.length / 2 && arr.indexOf("B") + 1 <= arr.length / 2) || + (arr.indexOf("A") + 1 <= arr.length / 2 && arr.indexOf("B") + 1 > arr.length / 2)) ? true : false + }; + const isLeft = () => { + return (arr.indexOf("A") + 1 > arr.length / 2) ? false : true + }; + + //대진표의 절반을 기준으로 양옆에 A와 B가 있을 경우 log2N을 구하면 라운드 수가 나옴 + while (!isDiff()) { + if (isLeft()) { + arr.splice(arr.length / 2) + } else { + arr.splice(0, arr.length / 2) + } + } + return Math.log2(arr.length) +} + \ No newline at end of file