https://www.acmicpc.net/problem/2089
1. 아이디어
음수로 진법 변환은 양수로 진법 변환과 기본 원리는 동일한데 나머지가 항상 양수가 되도록 조절만 해주면 된다.
2. 문제풀이
진법 변환을 위해 몫과 나머지를 구하는 과정에서 나머지가 음수가 되면 몫을 하나 더 크게 잡고 나머지를 양수로 만드는 과정을 반복하면 된다. 0이 입력으로 주어질 수 있음에 주의해야 한다.
3. 코드
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(br.readLine());
if (N == 0) {
sb.append(0);
} else {
while (N != 0) {
int q = N / -2;
int r = N % -2;
if (r < 0) {
q += 1;
r += 2;
}
sb.append(r);
N = q;
}
}
bw.write(sb.reverse().toString());
bw.flush();
}
}
4. 후기
'코딩테스트 준비 > 백준' 카테고리의 다른 글
[백준] 1252번 - 이진수 덧셈 [Java] (0) | 2025.03.14 |
---|---|
[백준] 11501번 - 주식 [Java] (1) | 2025.03.13 |
[백준] 17070번 - 파이프 옮기기 1 [Java] (0) | 2025.03.12 |
[백준] 17069번 - 파이프 옮기기 2 [Java] (0) | 2025.03.10 |
[백준] 23252번 - 블록 [Java] (0) | 2025.03.10 |