어제 늦게 들어와서 못했는데 오늘 다시 한문제..
언제쯤 머리 다시 굴리고 Easy 탈출할지 모르겠는데 일단 욕심 내지 말고 꾸준히 하는게 목표...!
오늘의 문제는
https://leetcode.com/problems/reverse-bits/
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번 반복하면 비트는 뒤집힌다.
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 |
댓글 영역