코딩테스트를 위한 자바(java) 비트마스크 - 6
정수의 이진수 표현을 자료 구조로 쓰는 기법을 비트 마스크(bitmask)라고 부른다. 엄밀히 말하면 자료구조는 아니지만 코딩 테스트를 할 때 유용하게 사용 가능하다. 비트 마스크를 알기 전에 비트 연산에 대해서 알 필요가 있다. 비트 마스크를 이용하면 얻을 수 있는 장점이 3가지가 있다. 더 빠른 수행 시간 더 간결한 코드 더 작은 메모리 사용량 ex) { 1,3,5,7,9 }를 원소로 가지는 집합을 표현할 때 방법 1 : int[] arr = { 1,3,5,7,9 }; 방법 2 : 101010101(2) (비트마스크) N비트 일 때 오른쪽부터 순서대로 0번째 비트, 1번째 비트, 2번째 비트... N-1번째 비트 공집합 0 꽉 찬 집합 int full = (1
java - 백준 알고리즘 - 15683 감시
이 문제는 N과 M의 크기, 감시카메라의 수가 최대 8개, 방향이 4개 밖에 없어 경우의 수가 크지 않을 것이라 생각하여 모든 경우의 수를 고려하는 브루트포스를 사용해서 풀었다. 문제를 푸는 생각의 과정은 이러하다. 1. 입력(arr배열)을 받으면서 카메라의 종류, 카메라의 x좌표, y좌표를 저장함. ( 인덱스 = 0~7 ) 2. 카메라의 종류, 위치 ,방향에 따라 배열의 값을 바꾸는 함수를 구현 ( 감시받고 있는 공간을 7로 저장함 ) 3. 1번에서 지정한 index에 따라 direction[ index ] 값을 바꾸어 방향으로 사용하였다. 4. 카메라가 3대 일 경우 direction[] 배열의 초기 상태는 { 1, 1, 0 } 이고 { 1, 1, 1 } -> { 1, 1, 2 } -> { 1, 1,..