상세 컨텐츠

본문 제목

190. Reverse Bits (C++)

알고리즘/leetcode

by 아리따운노을 2021. 10. 7. 23:37

본문

어제 늦게 들어와서 못했는데 오늘 다시 한문제..

언제쯤 머리 다시 굴리고 Easy 탈출할지 모르겠는데 일단 욕심 내지 말고 꾸준히 하는게 목표...!

 

오늘의 문제는

https://leetcode.com/problems/reverse-bits/

 

Reverse Bits - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

unsigned integer를 reverse 하는거다. 0을 1로 1을 0으로 바꾸라는게 아니라 1번째 <> 32번째 2번째 <> 31번째... 이렇게

앞뒤를 뒤집으라는 이야기다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
    uint32_t reverseBits(uint32_t n) {
        uint32_t ans = 0;
        
        for(int i=0;i<32;i++){
            ans = ans << 1;
            if( (n & 1 ) > 0)
                ans = ans | 1;
            n = n >> 1;
        }
        return ans;
    }
};
cs

 

내가 푼 방식은 이러하다. ans를 입력하고 왼쪽으로 한번씩 shift, n은 1인지 0인지 검사하고 오른쪽으로 1 쉬프트

이렇게 해서 32번 반복하면 비트는 뒤집힌다.

 

'알고리즘 > leetcode' 카테고리의 다른 글

169. Majority Element (C++)  (0) 2021.10.31
804. Unique Morse Code Words (C++)  (0) 2021.10.31
202. Happy Number (C++)  (0) 2021.10.07
20. Valid Parentheses (C++)  (0) 2021.10.06
119. Pascal's Triangle II (C++)  (0) 2021.10.05

관련글 더보기

댓글 영역