1.bool possi(vector<int> &vec, int now) {
2. for (int i = 0; i < vec.size(); i++)
3. if ((vec[i] & now) == vec[i])
return false;
return true;
}
이거 의미 파악하기
1. 현재의 숫자 now와 vec를 비교하려는것같음
2. 백터에 있는 숫자를 now와 비교하기 위해 for문을 돌리는것
3. vec안에 있는 숫자와 now를 & 연산한다.????
& 연산 = 두 숫자 모두가 1이라면 1 아니라면 0을 반환
왜 vec[i] == now를 안하고
vec[i]&now == vec[i]를 했을까에 대한 이유를 알아보자
ex)
vec[i] == now 비교했을때
0001 == 1010 false
0010 == 1010 false
0011 == 1010 false
vec[i]&now == vec[i] 비교했을때
vec ->
(0001 & 1010 -> 0000) == 0001 false
(0010 & 1010 -> 0010) == 0010 true
(0011 & 1010 -> 0010) == 0011 false
댓글 없음:
댓글 쓰기