백준
백준 1074 Z(Java)
Park DJ
2023. 2. 17. 14:16
https://www.acmicpc.net/problem/1074
1074번: Z
한수는 크기가 2N × 2N인 2차원 배열을 Z모양으로 탐색하려고 한다. 예를 들어, 2×2배열을 왼쪽 위칸, 오른쪽 위칸, 왼쪽 아래칸, 오른쪽 아래칸 순서대로 방문하면 Z모양이다. N > 1인 경우, 배열을
www.acmicpc.net
Java 코드
import java.util.Scanner;
public class Main {
static int count = 0;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int r = sc.nextInt();
int c = sc.nextInt();
int size = (int)Math.pow(2, n);
div(r, c, size);
System.out.println(count);
}
public static void div(int r, int c, int size) {
if(size == 1) return;
if(r < size / 2 && c < size / 2) div(r, c, size / 2);
else if(r < size / 2 && c >= size / 2) {
count += size * size / 4;
div(r, c - size / 2, size / 2);
}
else if(r >= size / 2 && c < size / 2) {
count += 2 * (size * size / 4);
div(r - size / 2, c, size / 2);
}
else if(r >= size / 2 && c >= size / 2) {
count += 3 * (size * size / 4);
div(r - size / 2, c - size / 2, size / 2);
}
}
}