본문 바로가기

Android ᙏ̤̫͚/차근차근 JAVA

[백준 2089번] - 2진수

 

www.acmicpc.net/problem/2089

 

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진법 수를 출력한다.

 


 

 


 

[풀이 방법]

  1. 정수 입력받아 변수 N에 저장

  2. N이 0인 경우 그냥 출력

  3. N을 -2로 나눈 나머지의 절댓값을 list 혹은 배열에 저장

  4. N이 0이 아닌 경우, N을 (-2)로 나누어 준 후, Math.ceil( ) 함수 이용하여 올림해주어 N에 저장

  5. 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