-
Daily Coding 3codeStates front-end/Algorithm 2023. 1. 16. 14:34๋ฐ์ํ
๐๋ฌธ์ 3( powerOfTwo )
์๋ฅผ ์ ๋ ฅ๋ฐ์ 2์ ๊ฑฐ๋ญ์ ๊ณฑ์ธ์ง ์ฌ๋ถ๋ฅผ ๋ฆฌํดํด์ผ ํฉ๋๋ค.
๐ฅ์ ๋ ฅ
์ธ์1 : num
number ํ์ ์ ์ ์ (num >= 1)
๐ค ์ถ๋ ฅ
boolean ํ์ ์ ๋ฆฌํด
โ๏ธ์ฃผ์์ฌํญ
๋ฐ๋ณต๋ฌธ(while)๋ฌธ์ ์ฌ์ฉํด์ผ ํฉ๋๋ค
2์ 0์น์ 1์ ๋๋ค
Number.isInteger, Math.log2, Math.log ์ฌ์ฉ์ ๊ธ์ง๋ฉ๋๋ค.
๋์ ์๊ฐ
์๋ฅผ ์ ๋ ฅ ๋ฐ์ -> ์ซ์๋ก ์ ๋ ฅ์๋ฐ์ผ๋ฉด
2์ ๊ฑฐ๋ญ์ ๊ณฑ -> ๊ฑฐ๋ญ์ ๊ณฑ?? ๋ญ์ง ๋ชจ๋ฅด๊ฒ ๋ค 2 % =0 ํ๋ฉด ๊ฑฐ๋ญ์ ๊ณฑ์ธ๊ฐ
์ฌ๋ถ ๋ฆฌํด -> true ๋ false๋
function powerOfTwo(num) { while (num >= 1) { if (num === 1){ return true; } if (num % 2 !== 0){ return false; } } }
์ง์ ๊น์ง๋ ์๊ฒ ๋๋ฐ ๊ฑฐ๋ญ์ ๊ณฑ ์๋ฌด๋ฆฌ ์๊ฐํด๋ ๋ชจ๋ฅด๊ฒ ๋ค ใ ใ
๋ํผ๋ฐ์ค
function powerOfTwo(num) { if (num === 1) { return true; } if (num % 2) { return false; } let powered = 2; while (powered < num) { powered = powered * 2; // 2๊ฐ num๋ณด๋ค ์์ผ๋ฉด 2๋ฅผ ๊ณฑํด๋ผ } return powered === num; // ๊ทธ ๊ณฑํ๊ฐ์ num๊ณผ ๋น๊ต }
๊ฑฐ๋ญ์ ๊ณฑ์ ์ด๋ป๊ฒ ๊ณ์ฐํ๋์ง ๋ชฐ๋๋๋ฐ
์ด๋ ๊ฒ ๋ ํ๋ ๋ฐฐ์ด๋น
๋ฐ์ํ'codeStates front-end > Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Daily Coding 7 (0) 2023.01.20 Daily Coding 6 (0) 2023.01.19 Daily Coding 5 (0) 2023.01.18 Daily Coding 4 (0) 2023.01.17 Daily Coding1,2 (0) 2023.01.13