#93. [백준_C언어] 1074 : Z \ 분할 정복

 

입력 코드

#include <stdio.h>
#include <math.h>

int N, r, c;
int ans, s;

main() {
	scanf("%d %d %d", &N, &r, &c);

	while (N) {
		int idx;
		s = pow(2, N) / 2;

		if (c < s && r < s)
			idx = 0;
		else if (c >= s && r < s)
			idx = 1;
		else if (c < s && r >= s)
			idx = 2;
		else if (c >= s && r >= s)
			idx = 3;

		c %= s;
		r %= s;

		ans += pow(s, 2)*idx;
		N--;
	}
	printf("%d\n", ans);
}

 

 

코드 설명

#분할정복 #재귀

 

 

참고

jaemin8852.tistory.com/251

 

[백준 BOJ] 1074 Z

링크 https://www.acmicpc.net/problem/1074 풀이 Z가 많이 그려져 있습니다. 이렇게 $2^{n}$를 기준으로 4등분 해서 (r,c)가 어디 있는지 알아냅니다. 분할 정복 알고리즘으로 크게 4등분으로 쪼개고 더 잘게..

jaemin8852.tistory.com

 

icanyoucanwecan.tistory.com/16

 

[BEAKJOON] 1074_Z_C언어

https://www.acmicpc.net/problem/1074 풀이 어렵지 않은 문제 같은데..맞추는데 시간이 오래걸린 문제이다. 처음에 문제에서 말하는대로 배열 채워가면서 정답을 출력하려고 하였으나...시간도 초과날 뿐

icanyoucanwecan.tistory.com

wjdgus2951.tistory.com/60

 

[백준] 1074번 Z

문제 https://www.acmicpc.net/problem/1074 풀이 분할정복과 재귀호출을 통해 해결하는 문제다. 한시간을 넘게 생각했는데 내가 생각한 방식으로 결국 구현을 하지 못했다. recursion을 구현하는게 너무 힘

wjdgus2951.tistory.com

 

 

 

문제 출처

www.acmicpc.net/problem/1074

 

1074번: Z

한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서

www.acmicpc.net