File tree Expand file tree Collapse file tree 1 file changed +12
-14
lines changed
Expand file tree Collapse file tree 1 file changed +12
-14
lines changed Original file line number Diff line number Diff line change 1616 - ๊ทธ๋ฌ๋ฏ๋ก ๊ณ์ ์ผ์ชฝ์ผ๋ก ์ด๋ํ๋ค ๊ฒฐ๊ตญ ์ฌ๋ผ์ง
1717 - ์บ๋ฆฌ๊ฐ 0์ด ๋๋ฉด ๋ฃจํ ์ข
๋ฃ
1818"""
19- # Solution 1: ์ดํดํ๊ธฐ ์ฌ์ด ๋ฒ์
19+ # Solution 1
2020class Solution :
2121 def getSum (self , a : int , b : int ) -> int :
2222 while b :
23- # XOR: ์ด๋์ ์บ๋ฆฌ๊ฐ ๋ฐ์ํ๋์ง ํ์ธ
24- current_sum = a ^ b
25-
26- # AND: ์บ๋ฆฌ๋ฅผ ๋ค์ ์๋ฆฌ๋ก ์ฌ๋ฆผ
27- next_carry = (a & b ) << 1
28-
29- a = current_sum
30- b = next_carry
23+ a , b = a ^ b , (a & b ) << 1
3124
3225 return a
33-
34- # Solution 2: ์ต์ ํ ๋ฒ์
26+
27+ # Solution 2: ์์ ์ผ์ด์ค ์ฒ๋ฆฌ
3528class Solution :
3629 def getSum (self , a : int , b : int ) -> int :
37- while b :
38- a , b = a ^ b , (a & b ) << 1
30+ mask = 0xffffffff # 32๋นํธ ๋ง์คํน
3931
40- return a
32+ while b & mask :
33+ # ์บ๋ฆฌ ์๋ ๋ง์
+ 32๋นํธ ์ ํ, ์บ๋ฆฌ ๊ณ์ฐ + 32๋นํธ ์ ํ
34+ a , b = (a ^ b ) & mask , ((a & b ) << 1 ) & mask
35+
36+ # a <= 0x7FFFFFFF: ์์์ผ ๋ ๊ทธ๋๋ก ๋ฐํ(0x7FFFFFFF = 32๋นํธ ์ต๋ ์์)
37+ # a > 0x7FFFFFFF: ์์์ผ ๋ Python ์์๋ก ๋ณํ
38+ return a if a <= 0x7FFFFFFF else a | (~ mask )
4139
You canโt perform that action at this time.
0 commit comments