[백준/C++] 1074번 Z
2021. 4. 9. 23:28ㆍ알고리즘/재귀
728x90
반응형
문제: www.acmicpc.net/problem/1074
1074번: Z
한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서
www.acmicpc.net
문제풀이
재귀 문제이다.
코드
#include <iostream>
using namespace std;
int func(int x, int y, int k){
if(k==0) return 0;
int half = 1<<(k-1);
if(x < half && y < half)
return func(x,y,k-1);
else if(x < half && y >= half)
return half*half + func(x,y-half,k-1);
else if(x >= half && y < half)
return 2*half*half + func(x-half,y,k-1);
else
return 3*half*half + func(x-half,y-half,k-1);
}
int main(){
ios::sync_with_stdio(false); cin.tie(nullptr);
int n,r,c;
cin>>n>>r>>c;
cout<<func(r,c,n);
return 0;
}
결과

728x90
반응형
'알고리즘 > 재귀' 카테고리의 다른 글
[백준/C++] 2448번 별 찍기 - 11 (0) | 2021.04.28 |
---|---|
[백준/C++] 17478번 재귀함수가 뭔가요? (0) | 2021.04.27 |
[백준/C++] 2447번 별 찍기 - 10 (0) | 2021.04.27 |
[백준/C++] 11729 하노이 탑 이동 순서 (0) | 2021.04.07 |
[백준/C++] 1629번 곱셈 (0) | 2021.04.06 |