티스토리 뷰

Baekjoon Solutions/Class-3

[백준] Z(1074)

률무차 2021. 5. 23. 00:45

title: "Z(1074)"
category: 백준[Class-3]
tags: [C++, JavaScript, 백준]
date: "2021-05-23"


문제 링크

Z(1074)

C++

#include <iostream>
#include <string>
#include <vector>

using namespace std;

int n, r, c;
int mark;

void divide(int size, int row, int col){
    if(r==row && c==col){
        // 원하는 위치
        cout<<mark<<"\n";
    }
    else if(r>=row && r<row+size && c>=col && c<col+size){
        // 해당 면에 포함되므로 4분할
        size /= 2;
        divide(size, row, col);
        divide(size, row, col+size);
        divide(size, row+size, col);
        divide(size, row+size, col+size);
    }
    else {
        // 해당 4분면에 포함되지 않음.
        mark += (size*size);
    }
}

void solution(){
    cin >> n >> r >> c;

    int size = 1 << n;
    mark = 0;
    divide(size, 0, 0);
}

bool exists(const char* fileName){
    FILE* fp;
    if((fp = fopen(fileName, "r"))){
        fclose(fp);
        return true;
    }
    return false;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    cout.tie(NULL);

    if(exists("stdin")){
        freopen("stdin", "r", stdin);
        solution();
        fclose(stdin);
    }
    else{
        solution();
    }

    return 0;
}

JavsScript

const fs = require("fs");
const input = fs.readFileSync("dev/stdin").toString().trim().split("\n");

// 문제 풀이
input[0] = input[0].split(" ");
const [n, r, c] = [+input[0][0], +input[0][1], +input[0][2]];

let mark = 0;
const divide = (size, row, col) => {
  if (r === row && c === col) {
    // 위치 찾음.
    console.log(mark);
  } else if (r >= row && r < row + size && c >= col && c < col + size) {
    // 사분면에 포함 [0]
    size /= 2;
    divide(size, row, col);
    divide(size, row, col + size);
    divide(size, row + size, col);
    divide(size, row + size, col + size);
  } else {
    // 사분면에 포함 [x]
    mark += size * size;
  }
};

const size = 1 << n;
divide(size, 0, 0);
728x90
반응형

'Baekjoon Solutions > Class-3' 카테고리의 다른 글

[백준] 토마토(7576)  (0) 2021.05.23
[백준] 숨바꼭질(1697)  (0) 2021.05.23
[백준] 좌표 압축(18870)  (0) 2021.05.23
[백준] 최소 힙(1927)  (0) 2021.05.21
[백준] 연결 요소의 개수(11724)  (0) 2021.05.21
댓글
04-30 00:30
링크