File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ /**
2+ * JavaScript ๋นํธ ์ฐ์ฐ์ ์ ๋ฆฌ:
3+ *
4+ * 1. & (AND ์ฐ์ฐ์): ๋ ๋นํธ๊ฐ ๋ชจ๋ 1์ผ ๋๋ง 1์ ๋ฐํ
5+ * ์: 5 & 3 = 1 (101 & 011 = 001)
6+ *
7+ * 2. ^ (XOR ์ฐ์ฐ์): ๋ ๋นํธ๊ฐ ๋ค๋ฅผ ๋ 1์ ๋ฐํ
8+ * ์: 5 ^ 3 = 6 (101 ^ 011 = 110)
9+ *
10+ * 3. << (์ผ์ชฝ ์ํํธ): ๋นํธ๋ฅผ ์ผ์ชฝ์ผ๋ก ์ด๋ (๊ณฑํ๊ธฐ 2์ ๋์ผ)
11+ * ์: 5 << 1 = 10 (101 << 1 = 1010)
12+ *
13+ * ํ์ด ์ค๋ช
:
14+ * - ์ด ์๊ณ ๋ฆฌ์ฆ์ ๋ง์
์ ๋นํธ ์ฐ์ฐ์ผ๋ก ๊ตฌํ
15+ * - XOR(^)๋ก ์๋ฆฌ์ฌ๋ฆผ ์๋ ํฉ์ ๊ตฌํจ
16+ * - AND(&)๋ก ์๋ฆฌ์ฌ๋ฆผ์ ์ฐพ๊ณ , ์ผ์ชฝ ์ํํธ(<<)๋ก ํ ์๋ฆฌ ์ฌ๋ฆผ
17+ * - ์๋ฆฌ์ฌ๋ฆผ์ด 0์ด ๋ ๋๊น์ง ๋ฐ๋ณต
18+ *
19+ * ์๊ณต๊ฐ ๋ณต์ก๋:
20+ * - ์๊ฐ ๋ณต์ก๋: O(1) - ์ต์
์ ๊ฒฝ์ฐ 32๋ฒ ๋ฐ๋ณต (32๋นํธ ์ ์)
21+ * - ๊ณต๊ฐ ๋ณต์ก๋: O(1) - ์์ ๊ณต๊ฐ๋ง ์ฌ์ฉ
22+ */
23+
24+ /**
25+ * @param {number } a
26+ * @param {number } b
27+ * @return {number }
28+ */
29+ var getSum = function ( a , b ) {
30+ while ( b !== 0 ) {
31+ // ์๋ฆฌ์ฌ๋ฆผ
32+ let carry = ( a & b ) << 1 ;
33+
34+ // ์๋ฆฌ์ฌ๋ฆผ ์๋ ํฉ
35+ a = a ^ b ;
36+
37+ b = carry ;
38+ }
39+ return a ;
40+ } ;
You canโt perform that action at this time.
0 commit comments