본문 바로가기

프로그래밍/Baekjoon

(C++) 백준 알고리즘 1074번 Z

문제

풀이 (C++)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
#include <cmath>
using namespace std;
 
int N, r, c, cnt;
 
void recursion(int row, int col, int range){
    if (row == r && col == c){
        cout << cnt;
        return;
    }
 
    if (r < row + range && r >= row && c < col + range && c >= col){
        recursion(row, col, range/2);
        recursion(row, col + range/2, range/2);
        recursion(row + range/2, col, range/2);
        recursion(row + range/2, col + range/2, range/2);
    }else{
        cnt += range * range;
    }
 
}
 
int main(){
    cin >> N >> r >> c;
 
    recursion(00, pow(2, N));
 
    return 0;
}
cs

example



문제 출처