Algorithm

[BOJ] 1074. Z

프로그래민 2020. 3. 22. 22:17
반응형

재귀를 이용하여 분할정복하는 문제이다.

func(int i, int j, int size) 함수를 이용하여 size==1이 될때까지 계속 호출하는 형태로  재귀를 반복하게 된다. 기저조건은 size가 1이 될때 cnt++를 해주고 return을 한다. 재귀는 Z모양으로 4번을 호출하게 된다.

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
31
32
33
34
35
36
37
38
39
40
41
package chap06;
 
 
public class Main_bj_1074_Z {
    
    static int R,C;
    static int cnt;
    
    
    public static void main(String[] args) throws Exception {
        BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int N=Integer.parseInt(st.nextToken());
        R=Integer.parseInt(st.nextToken());
        C=Integer.parseInt(st.nextToken());
        
        int size=1<<N;
        
        func(0,0,size);
    }
    
    static void func(int i,int j, int size) {
        if(size==1) {    //확인
            if(i==&& j==C)
                System.out.println(cnt);
//            System.out.println(i+ " ," +j + "== " +cnt);
            cnt++;
            return;
        }
        
        size=size/2;
        func(i,j,size);
        func(i,j+size,size);
        func(i+size,j,size);
        func(i+size,j+size,size);
    }
}
 
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter
                                             
반응형

'Algorithm' 카테고리의 다른 글

[BOJ] 2447. 별 찍기-10  (0) 2020.03.23
[BOJ] 2448. 별 찍기-11  (0) 2020.03.23
[BOJ] 11729. 하노이 탑 이동 순서  (0) 2020.03.22
[BOJ] 1629. 곱셈  (0) 2020.03.22
[BOJ] 2146. 다리 만들기  (0) 2020.03.21