
이 문제 꽤나 어렵게 느껴졌다. 일단 -2진수 자체가 너무 괴리감이 느껴짐. 결국 풀이를 참조함.
나머지가 -1인 경우, 1인경우를 각각 나누어 계산했다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
if (n==0) {
System.out.println(0);
} else {
while (n!=0) {
if (n%-2==0) {
sb.insert(0, "0");
n/=-2;
} else if (n%-2==1) {
sb.insert(0, "1");
n/=-2;
} else if (n%2==-1) {
sb.insert(0, "1");
n = n/-2 + 1;
}
}
System.out.println(sb);
}
}
}'백준 문제풀이' 카테고리의 다른 글
| 11005. 진법 변환 2 (자바, Java) (0) | 2022.11.22 |
|---|---|
| 17103. 골드바흐 파티션 (자바, Java) (0) | 2022.11.22 |
| 1212. 8진수 2진수 (자바, Java) (0) | 2022.11.22 |
| 1373. 2진수 8진수 (자바, Java) (0) | 2022.11.22 |
| 17087.숨바꼭질 6 (자바, Java) (0) | 2022.11.22 |