코딩테스트 풀이/JAVA
[LeetCode/Easy] 693. Binary Number with Alternating Bits
무지맘
2022. 12. 5. 00:04
1. Input
1) 양의 정수 n
2. Output
1) n을 2진수로 변환했을 때 0과 1이 번갈아가며 나오면 true, 아니면 false를 반환
3. Constraint
1) 1 <= n <= 2^31 - 1
4. Example
Input: n=5 -> Output: true
Input: n=7 -> Output: false
설명:
- 5 = 101(2)이므로 true를 반환한다.
- 7 = 111(2)이므로 false를 반환한다.
5. Code
1) 첫 코드(2022/07/06)
String s = Integer.toBinaryString(n);
for(int i=0 ; i<s.length()-1 ; i++)
if(s.charAt(i)==s.charAt(i+1))
return false;
return true;
2) 다시 풀어본 코드(2022/12/05)
int prev = n%2;
n /= 2;
boolean answer = true;
while(n>0){
if(n%2!=prev){
prev = n%2;
n /= 2;
} else{
answer = false;
break;
}
}
return answer;
- 1번에 비해 빠르고 공간 절약도 많이 했다.