티스토리 뷰

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

 

1074번: Z

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

www.acmicpc.net

 

 

const [n, r, c] = require('fs').readFileSync('./dev/stdin').toString().trim().split(' ').map(Number);

function Z(n, r, c) {
        if (n == 1) {
                return r * 2 + c;
        }
        const m = 1 << (n - 1);
        // 2사분면
        if (r < m && c < m) {
                return Z(n - 1, r, c);
        }

        // 1사분면
        else if (r < m && c >= m) {
                return Math.pow(4, n - 1) + Z(n - 1, r, c - m);
        }
        // 3사분면
        else if (r >= m && c < m) {
                return Math.pow(4, n - 1) * 2 + Z(n - 1, r - m, c);
        }

        // 4사분면
        else {
                return Math.pow(4, n - 1) * 3 + Z(n - 1, r - m, c - m);
        }
}
console.log(Z(n, r, c));
728x90
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/02   »
1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28
글 보관함