https://www.acmicpc.net/problem/2630
2630번: 색종이 만들기
첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다.
www.acmicpc.net
📌 작성한 코드
// 2630
const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "Beakjoon/Silver/test.txt";
let input = fs.readFileSync(filePath).toString().trim().split("\n");
const N = parseInt(input.shift(), 10);
const paper = input.map((row) => row.split(" ").map(Number));
const answer = [0, 0];
const recursion = (x, y, size) => {
let flag = true;
const target = paper[x][y];
for (let i = x; i < x + size; i++) {
for (let j = y; j < y + size; j++) {
if (paper[i][j] !== target) {
flag = false;
break;
}
if (!flag) break;
}
}
if (flag) {
answer[target]++;
} else {
const newSize = size / 2;
recursion(x, y, newSize);
recursion(x + newSize, y, newSize);
recursion(x, y + newSize, newSize);
recursion(x + newSize, y + newSize, newSize);
}
};
recursion(0, 0, N);
console.log(answer.join("\n"));
📌 풀이
백준 1980 - 종이의 개수와 완전히 똑같은 문제이다! 해당 문제의 해설을 참고하길 바란다.
https://youme016.tistory.com/342
[JavaScript] 백준 실버 2 : 1980 - 종이의 개수
https://www.acmicpc.net/problem/1780 1780번: 종이의 개수 N×N크기의 행렬로 표현되는 종이가 있다. 종이의 각 칸에는 -1, 0, 1 중 하나가 저장되어 있다. 우리는 이 행렬을 다음과 같은 규칙에 따라 적절한
youme016.tistory.com
✅ 성공

'알고리즘 > 백준' 카테고리의 다른 글
| [JavaScript/BFS] 백준 골드 4 : 12851 - 숨바꼭질 2 (1) | 2024.01.31 |
|---|---|
| [JavaScript/재귀] 백준 실버 1: 1992 - 쿼드트리 (0) | 2024.01.30 |
| [JavaScript/재귀] 백준 실버 2 : 1980 - 종이의 개수 (0) | 2024.01.30 |
| [JavaScript/재귀] 백준 실버 5 : 17478 - 재귀함수가 뭔가요? (0) | 2024.01.30 |
| [JavaScript/재귀] 백준 골드 5 : 11729 - 하노이 탑 이동 순서 (1) | 2024.01.30 |