File tree Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Expand file tree Collapse file tree 1 file changed +18
-0
lines changed Original file line number Diff line number Diff line change 1+ # recheck needs to be done
2+
3+ class Solution :
4+ def getSum (self , a , b ):
5+ MASK = 0xFFFFFFFF # 32๋นํธ ์ ์๋ฅผ ํ๋ด ๋ด๊ธฐ ์ํ ๋ง์คํฌ (์ญ์ง์๋ก๋ 4294967295)
6+ MAX_INT = 0x7FFFFFFF # 32๋นํธ์์์ ์์ ์ต๋๊ฐ (2147483647)
7+
8+ while b != 0 :
9+ # a ^ b: ์๋ฆฌ์ฌ๋ฆผ(carry) ์์ด ๋ํ ๊ฐ
10+ # a & b: ๊ฐ์ ์๋ฆฌ์ 1์ด ์์ผ๋ฉด ์๋ฆฌ์ฌ๋ฆผ์ด ์๊ธด๋ค๋ ์๋ฏธ
11+ # (a & b) << 1: ์๋ฆฌ์ฌ๋ฆผ์ ์ผ์ชฝ์ผ๋ก ์ด๋ํ์ฌ ์ค์ ์ฌ๋ฆผ ์ฐ์ฐ ์์น๋ก ๋ง์ถค
12+ a , b = (a ^ b ) & MASK , ((a & b ) << 1 ) & MASK
13+
14+ # ์ต์ข
์ ์ผ๋ก a์ ์ ๋ต์ด ๋ค์ด๊ฐ
15+ # ๊ทธ๋ฐ๋ฐ 32๋นํธ ๋ถํธ์๋ ์ ์์์๋ ์์ ์ต๋๊ฐ์ด MAX_INT
16+ # a > MAX_INT๋ผ๋ฉด ์์๋ผ๋ ๋ป์ด๋ฏ๋ก, ๋ณด์ ์ฒ๋ฆฌ๋ฅผ ํด์ค
17+ return a if a <= MAX_INT else ~ (a ^ MASK )
18+
You canโt perform that action at this time.
0 commit comments