관리 메뉴

솜씨좋은장씨

[BaekJoon] 2089번 : -2진수 (Python) 본문

Programming/코딩 1일 1문제

[BaekJoon] 2089번 : -2진수 (Python)

솜씨좋은장씨 2020. 5. 1. 17:15
728x90
반응형

1일 1문제 85일차!

오늘의 문제는 백준의 -2진수 입니다.

 

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, 11011, 11000, 11001 등이다. 10진법의 수를 입력 받아서 -2진수를 출력하는 프로그램을 작성하시오.

www.acmicpc.net

Solution

inputNum = int(input())
base = 1
minusBinary = []

if inputNum == 0:
    print(0)
else:
    while inputNum:
        if inputNum % 2:
            minusBinary.append(1)
            inputNum = inputNum - base
        else:
            minusBinary.append(0)
        base = base * (-1)
        inputNum //= 2

for i in range(len(minusBinary)-1, -1, -1):
    print(minusBinary[i], end='')

 

 

SOMJANG/CODINGTEST_PRACTICE

1일 1문제 since 2020.02.07. Contribute to SOMJANG/CODINGTEST_PRACTICE development by creating an account on GitHub.

github.com

 

Comments