입력 코드
#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);
}
코드 설명
#분할정복 #재귀
참고
[백준 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
[백준] 1074번 Z
문제 https://www.acmicpc.net/problem/1074 풀이 분할정복과 재귀호출을 통해 해결하는 문제다. 한시간을 넘게 생각했는데 내가 생각한 방식으로 결국 구현을 하지 못했다. recursion을 구현하는게 너무 힘
wjdgus2951.tistory.com
문제 출처
1074번: Z
한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. 만약, N > 1이 라서
www.acmicpc.net
'C' 카테고리의 다른 글
#95. [백준_C언어] 1780 : 종이의 개수 \ 분할 정복 (0) | 2021.02.23 |
---|---|
#94. [백준_C언어] 1992 : 쿼드트리 \ 분할 정복 (0) | 2021.02.23 |
#92. [백준_C언어] 2447 : 별 찍기 - 10 \ 분할 정복 (0) | 2021.02.22 |
#91. [백준_C언어] 11047 : 동전 0 \ 그리디 알고리즘 (0) | 2021.02.20 |
#90. [백준_C언어] 1931 : 회의실 배정 \ 그리디 알고리즘 (0) | 2021.02.20 |