알고리즘/짧은 알고리즘

십진수에서 이진수로 바꾸는 python코드 [이진수출력]

개발자 덕구🐾 2022. 4. 20. 13:55
728x90

먼서 십진수에서 이진수로 바꾸려면 

 

 

이런 과정을 거친다. 

0이 나올 때까지 2로 나누면 된다.

그리고 나머지를 끝에부터 적으면 그것이 바로 이진수다. 

 

 

 

 

 

 

스택을 그려 이해해보면 

 

이와 같다. 

 

 

dfs(x//2)가 5번째 줄이라고 하면 D(11)부터 계속해서 5번째 줄로 인해 2로 나눈 몫으로 DFS함수를 호출한다. 

그리고 끝내 몫이 0이 나온다. 

 

그러면 그때의 나머지 부터 차례대로 출력하면 된다. 

 

 

 

 

이것을 재귀를 사용해 python 코드로 바꾸면

다음과 같다. 

def dfs(x) :
    if x == 0 :
        return 
    else :
        dfs(x//2)
        print(x%2,end='')
        
if __name__=="__main__" : 
    n = int(input())
    dfs(n)

dfs를 이용해 구현할 수 있다. 

 

 

 

반응형