File tree Expand file tree Collapse file tree 1 file changed +32
-0
lines changed
Expand file tree Collapse file tree 1 file changed +32
-0
lines changed Original file line number Diff line number Diff line change 1+
2+ // tc -> O(1)
3+ // NOTE: μλ°μ Integer.parseIntλ μμ ννμ μ²λ¦¬νμ§ λͺ»ν¨.. μμ λΆνΈκ° μλ μ΄μ§μλ§ μ§μ. (μμμ κ²½μ° 1111111~ λ‘ μμνλ μ΄μ§ λ¬Έμμ΄μ μμλ‘ ν΄μνλ € μλν΄ λ°νμ μ€λ₯ λ°μ)
4+ class Solution {
5+ public int getSum (int a , int b ) {
6+ String aStr = String .format ("%32s" , Integer .toBinaryString (a )).replace (" " , "0" );
7+ String bStr = String .format ("%32s" , Integer .toBinaryString (b )).replace (" " , "0" );
8+ char [] sum = new char [32 ];
9+ boolean isCarry = false ;
10+
11+ for (int i = sum .length - 1 ; i >= 0 ; i --) {
12+ if (aStr .charAt (i ) == bStr .charAt (i ) && aStr .charAt (i ) == '1' ) {
13+
14+ sum [i ] = isCarry ? '1' : '0' ;
15+ isCarry = true ;
16+ continue ;
17+ }
18+
19+ if (aStr .charAt (i ) == '1' || bStr .charAt (i ) == '1' ) {
20+ sum [i ] = isCarry ? '0' : '1' ;
21+ isCarry = isCarry ? true : false ;
22+ continue ;
23+ }
24+
25+ sum [i ] = isCarry ? '1' : '0' ;
26+ isCarry = false ;
27+ }
28+
29+ String resStr = new String (sum );
30+ return (int ) Long .parseLong (resStr , 2 );
31+ }
32+ }
You canβt perform that action at this time.
0 commit comments