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를 이용해 구현할 수 있다.
반응형
'알고리즘 > 짧은 알고리즘' 카테고리의 다른 글
[c++]이차원배열_초기화방법(memset) (0) | 2021.10.29 |
---|---|
[C++]BFS_상하좌우 이동 배열(dx,dy) (2) | 2021.09.19 |