본문 바로가기

컴퓨터/코테

릿코드 338 - 2진법 변환

class Solution:
    def countBits(self, n: int) -> List[int]:
        ans = []
        for i in range(n+1):
            cnt = 0
            while i != 0 : 
                if i % 2 : cnt += 1 
                i = i // 2
            ans.append(cnt)
        return ans

너무 간단한 이진법 문제. 파이썬의 내장함수와 속도를 비교해봤다.

 

class Solution:
    def countBits(self, n: int) -> List[int]:
        ans = []
        for i in range(n+1):
            ans.append(bin(i).count(str(1)))
        return ans

훨씬 빠르다 ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ 수가 작을때는 첫번째 코드가 더 빠르지만 수가 커지면 bin() 과 count()를 사용한 코드가 훨씬 빨랐다.