코드시그널 아케이드 파이썬 05 번 풀이
인트로의 지옥을 벗어났구요.. 그래프를 풀려면, 자바같은 개가튼 언어는 별로 더라구요.
자 파이썬을 시작해보겠습니다. 조금 배워보니 왜 파이썬 파이썬 하는지 알겠더군요.
약간 자바보다는 안정감이 떨어지지만(?) 개인적으로
유연하고 간편하다? 라는 느낌을 받았습니다. 자 시작해볼까요!!
문제 해설
이 문제는 입력되는 숫자를 2진법으로 변환했을때, 그 변환된 이진 수의 길이를 리턴하라는 문제입니다.
해결
def countBits(n):
return n.bit_length()
간편하게 bit_length() 함수를 사용하여 리턴하면 됩니다.
bin(), oct(), hex() 이러한 2진수 8진수 16진수 등으로 변환시켜주는 함수가 존재합니다.
사용법
number = 50
print(bin(number))
print(oct(number))
print(hex(number))
#0b110010
#0o62
#0x32
_이런식으로 출력이 됩니다. 하지만 0b, 0o, 0x 이러한 표시가 오히려 거슬리거나, 필요하지 않을때도 있습니다.
그러한 경우 format() 함수를 사용하는 것이 좋습니다.
먼저 기본적인 사용법
number = 50
print(format(number,'#b'))
print(format(number,'#o'))
print(format(number,'#x'))
#0b110010
#0o62
#0x32
앞 쪽 접두어를 제거하는 방법 *_'#' *_을 제거하면 됩니다.
number = 50
print(format(number,'b'))
print(format(number,'o'))
print(format(number,'x'))
#110010
#62
#32
이제 Bit_length() 함수에 대해 알아보겠습니다.
자세한 설명은 이 사이트로 가면 됩니다.
bit_length()함수는 bit() 함수를 해준 뒤, lstrip('0b')을 통해 접두어를 제거하고 len()함수로 길이를 측정해주는 함수 입니다.
잘 기억해두고 나중에 다른식으로 활용해보면 좋겠네요.
공감♥ 부탁드립니다.
728x90
반응형
'Algorithm > Python' 카테고리의 다른 글
#06_Code Signal Arcade Python :: Modulus (0) | 2020.06.15 |
---|---|
#04_Code Signal Arcade Python :: Language Differences (0) | 2020.06.04 |
#03_Code Signal Arcade Python :: Special Conditional (0) | 2020.05.29 |