Programming/leetcode
1680. Concatenation of Consecutive Binary Numbers
홍열
2021. 1. 28. 09:09
728x90
주어진 수를 2진수로 변환하면서 나오는 값들을 하나로 합쳐 다시 그 값을 10진수로 변환하는 문제
예를 들어, 3이면 아래 표와 같이 11101이 나오게 된다(1부터 3까지의 2진수를 하나로 합치는 것)
10진수 | 2진수 |
1 | 1 |
2 | 10 |
3 | 11 |
11101을 다시 10진수로 변환하면 27이 나온다.
파이썬에서 진법 문제를 다룰수 있는지를 보는 문제같다.
풀고나서 Discuss를 보니 신기한 방법으로 푼 애들도 있었다.
def concatenatedBinary(self, n: int) -> int:
s = ""
for i in range(1, n+1):
s += format(i, 'b')
s = '0b'+ s
return int(s, 2) % (10 ** 9 + 7)
참고로 진버과 관련해서는 아래 블로그를 참고하였다.
www.daleseo.com/python-int-bases/
[파이썬] 2진수, 8진수, 16진수 다루기
Engineering Blog by Dale Seo
www.daleseo.com