백준 11723번 집합
< 백준 11723번 집합 - 마포 코딩박 >
사용한 알고리즘: 비트마스킹
비트마스킹을 이용해 문제에서 요구하는 연산을 하는 문제였습니다.
문제풀이는 다음과 같습니다.
(1) (코드 14~18)
add : 비트 연산자 | (or) 을 사용해줍니다.
(2) (코드 19~23)
-1 = 111...11 로 저장됩니다. -1 + 1 = 1000....00 = 0 으로 계산되죠! 이를 이용하면 -1-(1<<x) = 111...11 - (1<<x) = 111....101111 로 x번째가 0 이 됩니다.
따라서 remove : val&(-1-(1<<x)) 를 하게되면 x번째가 0 이 됩니다.
(3) (코드 24~42)
check 연산은 & (and) 연산자로, toggle 연산은 ^ (xor) 연산자로 해주면 됩니다.
all 연산은 위에 말한대로 -1 = 111...11 이므로 이를 활용해줍니다.
사용한 알고리즘: 비트마스킹
비트마스킹을 이용해 문제에서 요구하는 연산을 하는 문제였습니다.
문제풀이는 다음과 같습니다.
(1) (코드 14~18)
add : 비트 연산자 | (or) 을 사용해줍니다.
(2) (코드 19~23)
-1 = 111...11 로 저장됩니다. -1 + 1 = 1000....00 = 0 으로 계산되죠! 이를 이용하면 -1-(1<<x) = 111...11 - (1<<x) = 111....101111 로 x번째가 0 이 됩니다.
따라서 remove : val&(-1-(1<<x)) 를 하게되면 x번째가 0 이 됩니다.
(3) (코드 24~42)
check 연산은 & (and) 연산자로, toggle 연산은 ^ (xor) 연산자로 해주면 됩니다.
all 연산은 위에 말한대로 -1 = 111...11 이므로 이를 활용해줍니다.
댓글
댓글 쓰기
긴 글 읽어주셔서 감사합니다.
궁금한게 있으시다면 댓글 달아주세요!