파이썬 알고리즘-43 (DFS/BFS) 이진수 출력

jiffydev·2020년 9월 14일
0

Algorithm

목록 보기
50/92
post-thumbnail

43.재귀함수를 이용한 이진수 출력
10진수 N이 입력되면 2진수로 변환하여 출력하는 프로그램을 작성하세요. 단 재귀함수를 이용
해서 출력해야 합니다.

▣ 입력설명
첫 번째 줄에 10진수 N(1<=N<=1,000)이 주어집니다.

▣ 출력설명
첫 번째 줄에 이진수를 출력하세요.

▣ 입력예제 1
11

▣ 출력예제 1
1011

내 코드

n=int(input())

def bin(n):
    pow=0    
    while True:
        if n-2**pow>0:
            pow+=1
        else:
            break
    if n-2**(pow-1)>0:
        print(1)
    else:
        print(0)
    if n>0:
        bin(n-2**(pow-1))
bin(n)

삽질의 결과 = 틀림

풀이

def DFS(x):
    if x==0:
        return
    else:
        DFS(x//2)
        print(x%2, end='')

n=int(input())
DFS(n)

반성점

  • n진법의 정의를 제대로 이해하지 못해서 실패

배운 것

  • 10진법을 n진법으로 바꿀 때는 n으로 나눈 몫을 계속 나눠주고, 나머지는 역순으로 기입
  • 재귀함수는 함수를 스택에 쌓는 것과 같아서 함수 안의 함수를 계속 스택에 넣고, 설정한 범위까지 넣었으면 pop해서 가장 마지막에 넣은 함수부터 실행시킨다.
profile
잘 & 열심히 살고싶다

0개의 댓글