2089번: -2진수
-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)0 = 1, (-2)1 = -2, (-2)2 = 4, (-2)3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 110
www.acmicpc.net
[문제]
-2진법은 부호 없는 2진수로 표현이 된다. 2진법에서는 20, 21, 22, 23이 표현 되지만 -2진법에서는 (-2)^0 = 1, (-2)^1 = -2, (-2)^2 = 4, (-2)^3 = -8을 표현한다. 10진수로 1부터 표현하자면 1, 110, 111, 100, 101, 11010, 11011, 11000, 11001 등이다.
10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오.
<알고리즘 분류> 수학, 정수론
[input]
첫 줄에 10진법으로 표현된 수 N이 주어진다. (-2,000,000,000 ≤ N ≤ 2,000,000,000)
[output]
-2진법 수를 출력한다.

[풀이 방법]
-
정수 입력받아 변수 N에 저장
-
N이 0인 경우 그냥 출력
-
N을 -2로 나눈 나머지의 절댓값을 list 혹은 배열에 저장
-
N이 0이 아닌 경우, N을 (-2)로 나누어 준 후, Math.ceil( ) 함수 이용하여 올림해주어 N에 저장
-
list의 가장 끝보다 하나 전인 것부터 (배열의 끝보다 하나 전인 것부터) 첫번째까지 순서대로 출력
성공 코드 - list 활용

성공 코드 - 배열 사용

'Android ᙏ̤̫͚ > 차근차근 JAVA' 카테고리의 다른 글
[백준 1373번] 2진수 8진수 (0) | 2021.02.16 |
---|---|
[백준 1212번] 8진수 2진수 (0) | 2021.02.16 |
[백준 1676번] 팩토리얼 0의 개수 (0) | 2021.02.15 |
[백준 10824번] 네 수 (0) | 2021.02.15 |
[백준 11655번] ROT13 (0) | 2021.02.15 |