https://www.acmicpc.net/problem/1992
1992번: 쿼드트리
첫째 줄에는 영상의 크기를 나타내는 숫자 N 이 주어진다. N 은 언제나 2의 제곱수로 주어지며, 1 ≤ N ≤ 64의 범위를 가진다. 두 번째 줄부터는 길이 N의 문자열이 N개 들어온다. 각 문자열은 0 또
www.acmicpc.net
알고리즘 : 재귀
재귀문제는 항상 어려운 것 같다.
문제를 이해하고 풀었으나, 혼자 다 풀지 못하고 c++로된 자료를 참고해서 이해하고 다시 풀어서 맞췄다.
bfs,dfs문제에 익숙해지면 재귀문제를 집중적으로 풀어봐야겠다.
let input = require("fs")
.readFileSync("input.txt") //"/dev/stdin"
.toString()
.split("\n")
.map((val) => val.trim());
let n = +input.shift();
let graph = input.map(v=>v.split("").map(v=>+v));
const quard = (y,x,size)=>{
if(size===1) return graph[y][x];
let temp = graph[y][x];
let result = "";
for(let i=y;i<y+size;i++){
for(let j=x;j<x+size;j++){
if(temp!==graph[i][j]){
result+="(";
result+=quard(y,x,size/2);
result+=quard(y,x+size/2,size/2);
result+=quard(y+size/2,x,size/2);
result+=quard(y+size/2,x+size/2,size/2);
result+=")";
return result;
}
}
}
return graph[y][x];
}
function solution() {
console.log(quard(0,0,n));
}
solution();
'코딩테스트(알고리즘) > baekjoon' 카테고리의 다른 글
[baekjoon] 4659 비밀번호 발음하기 (0) | 2023.01.13 |
---|---|
[baekjoon] 2910 빈도정렬 (javascript) (0) | 2023.01.12 |
[baekjoon] 2583 영역 구하기 (javascript) (2) | 2023.01.11 |
[beakjoon] 2468 안전 영역 (javascript) (0) | 2023.01.11 |
[baekjoon] 1012 유기농배추 (javascript) (0) | 2023.01.10 |