- 백준 17472 다리 만들기 2
// case 1: 이차원 배열
// 일반적인 순회
for(int r = 0; r < R; ++r)
for(int c = 0; c < C; ++c)
map[r][c]
// 브루트포스
bf(int r, int c, int s){
if(s == SMAX){
return;
}
for(; r < R; ++r){
for(; c < C; ++c)
S[s] = map[r][c];
bf(r, c + 1, s + 1);
c = 0;
}
}
// case 2: 인접행렬(undirected)
// 일반적인 순회
for(int r = 0; r < R; ++r)
for(int c = r + 1; c < C; ++c)
map[r][c]
// 브루트포스
bf(int r, int c, int s){
if(s == SMAX){
return;
}
for(; r < R; ++r){
for(; c < C; ++c)
S[s] = map[r][c];
bf(r, c + 1, s + 1);
c = r + 2;
}
}
*** SMAX는 선택해야하는 갯수, S는 선택한 값들의 배열