-
2021-02-01] Number of 1 BitsIT/자기계발 ( Leetcode ) 2021. 2. 1. 22:53반응형
지난 한 달 동안 그래도 열심히 알고리즘 문제를 풀며, 블로그를 작성중이다. ( 스스로에게 칭찬한다.. )
앞으로도 꾸준히 블로그도 쓰고, 문제도 풀며 발전하는 내가 되면 좋겠다.
2월 첫번째 문제라 그런지, 문제의 난이도는 Easy이다. 1월 첼린지를 포기했던 사람들도 다시 도전해보며
자신감을 가질 수 있는 난이도를 선택한게 아닐까ㅋㅋ 이번 문제도 예시를 보며 이해해보자.
주어지는 32bit로 2진수로 표현된 값에서 1이 있는 값을 출력해주는 내용이다.
예시로만 보면, 매우 간단해 보인다. for 문을 돌며 요소값이 1이면 체크하여 체크된 값의 합을 구하면 된다.
하지만, 문제에서 주어지는 input 값은 Int 형으로, 32bit로 표현시 값이 넘어가서 제대로 된 값이 안나올 수 있다.
아래 문제풀이에서 사용한 bin() 함수를 통해 binary ( 2진수 )로 변경하여 0,1로만 표현되는 식으로 만들어줘야한다.
그리고 python에서 bin() 함수를 쓰면 앞에 2진수라는 것을 나타내는 '0b' 가 추가된다. ex) 2 -> '0b10'
그래서 그것을 split 해주고 for문으로 검색하여 return해주면 문제는 통과된다.
문제풀이)
class Solution: def hammingWeight(self, n: int) -> int: ret=0 for i in str(bin(n)).split('0b')[1]: if i == "1": ret+=1 return ret
반응형'IT > 자기계발 ( Leetcode )' 카테고리의 다른 글
2021-02-03] Linked List Cycle (0) 2021.02.03 2021-02-02] Trim a Binary Search Tree (0) 2021.02.03 2021-01-31] Next PermutationSolution (0) 2021.02.01 2021-01-30] Swapping Nodes in a Linked List (0) 2021.01.31 2021-01-29] Vertical Order Traversal of a Binary Tree (0) 2021.01.29