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으로 바꾸니 쉽게 해결할 수 있었다. 조건 잘 읽기!
'baekjoon(Java)' 카테고리의 다른 글
[BOJ] 백준 10798 세로읽기 (Java) (0) | 2022.01.08 |
---|---|
[BOJ] 백준 17413 단어 뒤집기 2 (Java) (0) | 2022.01.08 |
[BOJ] 백준 2581 소수 (Java) (0) | 2022.01.06 |
[BOJ] 백준 2775 부녀회장이 될테야 (Java) (0) | 2022.01.06 |
[BOJ] 백준 11729 하노이 탑 이동 순서 (Java) (0) | 2022.01.04 |
댓글