티스토리 뷰
비트마스킹이란?
비트 단위로 내가 저장하고싶은 값을 보존하는 것이다.
우리가 4개의 visited 공간을 만들고 싶다면
파이썬
visited = [0] * (4)
자바
Integer[] visited = new Integer[4]
이런식으로 만들 수 있지만 더욱이 메모리를 아껴서 할당 할 수가 있다.
바로! 비트로 바꾸는 것이다 0000 을 통해 우리는 4개의 visited를 만들 수 있는 것이다.
0번째를 방문하면 0001
이후 3번째를 방문했다면 1001
이후 1번째를 방문했다면 1011
마지막으로 2번째를 방문했다면 1111이된다.
그렇다. 이게 끝이다.... 0과 1을 이용해서 우리가 원하는데이터 (visited)를 만듦으로 메모리를 최소화하는 것이다.
아직 비트에 익숙하지 않기에 나중에 다시금 포스팅하도록 하겠다
'Algorithm Theory' 카테고리의 다른 글
투 포인터(Two Pointers Algorithm) (0) | 2022.07.10 |
---|---|
구간합 배열(Prefix Sum) (0) | 2022.07.10 |
백트래킹(Backtracking) (0) | 2022.07.09 |
너비 우선 탐색(Breadth-First Search) (0) | 2022.07.09 |
깊이 우선 탐색(Depth-First Search) (0) | 2022.07.09 |