SMALL
알고리즘 분류: 분할 정복
코드:
#include <iostream>
#include <cmath>
using namespace std;
int n,r,c,ans=0;
int dx[4] = {0,0,1,1};
int dy[4] = {0,1,0,1};
void fillBoard(int n,int x,int y){
if(n==2){
for(int i = 0; i<4; i++){
int nx = x + dx[i];
int ny = y + dy[i];
if(nx== r && ny == c){
cout << ans;
return;
}
ans++;
}
return;
}
fillBoard(n/2,x,y);
fillBoard(n/2,x,y+n/2);
fillBoard(n/2,x+n/2,y);
fillBoard(n/2,x+n/2,y+n/2);
}
int main(){
cin >> n >> r >> c;
fillBoard(1<<n,0,0);
}
LIST
'BOJ 문제풀이' 카테고리의 다른 글
백준 1463 c++ 풀이 (1) | 2021.07.28 |
---|---|
백준 3273 c++ 풀이 (0) | 2021.07.26 |
백준 2447번 c++ 풀이 (0) | 2021.07.22 |
백준 1517 c++ 풀이 (0) | 2021.07.22 |
백준 2178번 c++ 풀이 (0) | 2021.07.20 |