[백준]1074 Z

leejihun·2022년 6월 1일
0

알고리즘

목록 보기
16/50

https://www.acmicpc.net/problem/1074

#include<iostream>
using namespace std;
#include<cmath>


int FuncZ(int n, int r, int c)
{
	if (n ==0)
		return 0;
	
	int half = (1 << (n - 1));
	if (r < half && c < half)  //1사분면 
		return FuncZ(n - 1, r, c);



		if (r < half && c >= half) //3 
		return  half * half + FuncZ(n - 1, r, c - half);

		if (r >= half && c < half)   //2사분면 
		return   2* half * half + FuncZ(n - 1, r - half, c);


		return   3 * half * half + FuncZ(n - 1, r- half, c- half); //4사분면

	

}	


int main()
{
	int n, r, c;
	cin >> n >> r >> c;
	cout << FuncZ(n, r, c);

}

어렵다.. 예전에 한번 풀었던건데 다시보니까 모르겠다.

재귀식 만들때 2,3 번째 사각형 나눌때 행과 열이 계속 헷갈려서 오래걸렸다.

https://cocoon1787.tistory.com/376

profile
U+221E

0개의 댓글