파이썬 알고리즘 174번 | [백준 2089번] -2 진수

Yunny.Log ·2022년 6월 14일
0

Algorithm

목록 보기
177/318
post-thumbnail

174. -2 진수

1) 어떤 전략(알고리즘)으로 해결?

2) 코딩 설명

<내 풀이>


import sys

n = int(sys.stdin.readline().rstrip())
res=""
if n == 0 : print(0)
# 나머지가 진수가 되는 것 
# -13 = (-2)*7 + 1 
# 7 = (-2)*(-3) + 1
while n : 
    print(n//-2)
    print(n%-2)
    print("\n")
    if n%-2: #2로 안나눠떨어진다면 나머지가 1 
        n//=-2 #-13//-2 는 몫이 6 (6.5인데 정수처리돼서), 근데 몫이 7이어야 한다. 
        n+=1 # 그래서 일을 더해준다

        res='1'+res #결과값 앞에 나머지 1 더해주기 (나머지 항상 1 경우)

    else : #2로 안나눠떨어진다면 나머지가 0
        n//=-2
        res='0'+res

print(res)


<다른 분의 풀이 or 내 틀렸던 풀이, 문제점>

출처, 참고 : https://suri78.tistory.com/119

<반성 점>

  • 진수를 그동안 맨날 메소드로 풀어서 ㅠㅠ 접근법을 몰랐다
  • 진수는 나머쥐

<배운 점>

  • 진수는 나머지로 접근하자

0개의 댓글