if ((i & 1 << k) > 0)
이게 뭘 의미하는지 모르겠어 구글링 계속 해보는데도 여기를 속시원하게 설명해주는데가 없네
설명이 없는거보면 엄청 기본적인 무언가같은데 다른 부분들은 다 납득이 되는데 딱 이 한줄만 뭔 말을 하는질 모르겠음
class Solution{
List<Integer> answer = new ArrayList<>();
public int solution(String[][] relation) {
int n = relation.length;
int m = relation[0].length;
for(int i = 1; i < 1 << m; i++){
Set<String> set = new HashSet<>();
for(int j = 0; j < n; j++){
String temp = "";
for(int k = 0; k < m; k++){
if((i & 1 << k) > 0){
temp += (relation[j][k]);
}
}
set.add(temp);
}
if(set.size() == n && check(i)){
answer.add(i);
}
}
return answer.size();
}
boolean check(int i) {
for (int j : answer) {
if ((i & j) == j) return false;
}
return true;
}
}
2진수로 나타냈을때 k번째값이 1이면 true 인거아님? - dc App
고마워용
i의 k번째 비트가 켜져있는가?
아하!!! 속이 뻥 감사감사
좋아요
뒤에서부터 0번째부터 세서 k번째 비트가 1인지 0인지 보는거임