[백준] 2089번 -2진수 - Java, 자바

Kim Ji Eun·2022년 1월 11일
0
post-thumbnail

난이도

실버 4

문제

https://www.acmicpc.net/problem/2089

코드


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

// 2089번 -2진법
public class boj_5_2089 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int input = Integer.parseInt(br.readLine());

        if (input == 0)
            System.out.println(0);
        else {
            while (input != 1) {
                sb.append(Math.abs(input % -2));
                input = (int) Math.ceil((double) input / (-2));
            }
            sb.append(input);
            System.out.println(sb.reverse());
        }

    }
}

풀이

십진수를 이진수로 변환하는 것처럼 풀지만 올림처리(Math.ceil)를 해주어야한다.

참고
https://bellossimo.tistory.com/56

profile
Back-End Developer

0개의 댓글