baekjoon(Java)
[BOJ] 백준 10829 이진수 변환 (Java)
bak_ssso
2022. 1. 8. 00:50
https://www.acmicpc.net/problem/10829
10829번: 이진수 변환
첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000)
www.acmicpc.net
문제
자연수 N이 주어진다. N을 이진수로 바꿔서 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 자연수 N이 주어진다. (1 ≤ N ≤ 100,000,000,000,000)
출력
N을 이진수로 바꿔서 출력한다. 이진수는 0으로 시작하면 안 된다.
성공코드
// 2022.01.08.토
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class BOJ10829 {
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());
binary(N);
String reverse = sb.reverse().toString();
System.out.println(reverse);
}
public static void binary(long N) {
sb.append(N % 2);
if ( N / 2 == 0) {
return;
}
binary(N / 2);
}
}
Point
입력받는 정수의 범위에 주의해야 한다.
Review
이진수를 구하는 방법을 알고있다면 쉽게 풀 수 있는 문제. 나도 논리회로 강의에서 배웠던 내용이라서 쉽게 코드를 작성할 수 있었다. but,,, 정수 범위를 안보고 그냥 했더니 런타임에러 나서 당황,,, 입력받는 수와 binary 함수의 인자를 모두 long으로 바꾸니 쉽게 해결할 수 있었다. 조건 잘 읽기!