[백준] 이진수 변환(자바)

지수·2021년 9월 8일
0
post-thumbnail

알고리즘 문제 풀이를 블로그에 올리는 이유는 풀이, 코드를 기록하기 위함이니
앞으로 문제를 다 긁어오기보다 링크만 두고 풀이가 잘 보이도록 포스팅 할 예정입니다!

📄 문제

[백준] 이진수 변환


👩‍💻 풀이

1. 문제 이해

이 문제는 주어진 10진수값을 2진수값으로 변환하여 출력하는 문제이다.


2. 재귀 활용 풀이

  • 이 문제를 재귀 공부하면서 풀게 되어서, 더 빠른 방법이 있지만 공부하는 겸 재귀를 활용하여 풀어보았다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
        static StringBuilder sb = new StringBuilder();

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        Long N = Long.parseLong(br.readLine());
        System.out.println(toBinay(N));
    }

    static String toBinay(Long N) {
        if(N == 1) {
            sb.append(N);
            return sb.reverse().toString();
        }
        if(N == 0) {
            return sb.reverse().toString();
        }

        sb.append(N % 2);
        N /= 2;
        return toBinay(N);
    }
}

3. toBinaryString 활용 풀이(빠름🔥)

  • 내장 함수 toBinaryString을 활용하면 입력값을 바로 2진수로 변환하여 출력할 수 있다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {

    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        System.out.println(Long.toBinaryString(Long.parseLong(br.readLine())));
    }
}
profile
사부작 사부작

0개의 댓글