본문 바로가기
Algorithm/이론

2진수 변환

by Salgoo26 2021. 7. 26.
  • 10진수 n을 입력받아 2진수로 변환하여 문자열로 반환하는 함수를 완성하라
  • 두 가지 접근법이 있다.
  • 반복문, 재귀함수를 사용할 수 있다.

 

# 반복문을 통한 풀이

def dec_to_bin(n):
	# 가독성을 위해, 입력받은 값을 quotient 변수에 저장한다.
    quotient = n
    # 결과를 저장하기 위해 result 변수에 빈 문자열을 넣는다.
    result = ''
    while quotient > 0:
    	# divmod() 를 활용하여, quotient엔 2로 나눈 몫을, remainder엔 나머지를 저장한다.
        quotient, remainder = divmod(quotient, 2)
        # result 빈 문자열에 나머지를 str로 변환한 값을 더해준다. 이 때, 더해지는 순서에 유의한다.
        result = str(remainder) + result

	# 몫이 0이 될 때까지 반복한 후, 결과값을 리턴한다.
    return result

 

 

 

# 재귀함수를 통한 풀이

def dec_to_bin(n):
    if n < 2:
    # base case에 해당하는 경우로, 1이나 0이 입력되면 그 수 자체를 반환하도록 한다.
        return str(n)
    else:
    # base case이외의 경우로, 입력값을 2로 나눈 결과 앞에 입력값을 2로 나눈 몫을 인자로 재귀함수를 호출한다.
        return  dec_to_bin(n//2) + str(n%2)

 

'Algorithm > 이론' 카테고리의 다른 글

2차원 배열 회전  (0) 2021.08.17
순열 만들기  (0) 2021.08.10
Baby-gin Game  (0) 2021.08.10
최댓값 알고리즘  (0) 2021.08.09
피타고라스의 정리  (0) 2021.08.01

댓글