본문 바로가기

code/BOJ

다차원배열 브루트포스

  • 백준 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는 선택한 값들의 배열