백준 1992 JavaScript
문제
풀이
백준 1780번 종이의 개수 문제 풀이와 상당히 유사하다.
예제의 출력결과에 괄호가 뒤섞여 있어서 당황스러웠지만 차근차근히 그려보니 9개로 나누는 대신 4개로 나눈다는 것 빼고 거의 똑같았다.
for
문이 시작되기 전과 후에 추가해주면 된다.
const readFileSyncPath = require('path').basename(__filename).replace(/js$/, 'txt')// const readFileSyncPath = '/dev/stdin';const input = require('fs').readFileSync(readFileSyncPath).toString().trim().split('\n')const N = Number(input[0])const video = []for (let i = 1; i <= N; i++) {video.push(input[i].split('').map(Number))}const checkSameNumber = (arr) => {let flag = trueconst first = arr[0][0]for (let i = 0; i < arr.length; i++) {for (let j = 0; j < arr.length; j++) {if (first !== arr[i][j]) {flag = falsebreak}}}return flag}const solve = (arr) => {let number = ''if (arr.length === 1 || checkSameNumber(arr)) {return arr[0][0]}if (arr.length >= 2) {number += '('const div = arr.length / 2for (let i = 0; i < arr.length; i += div) {for (let j = 0; j < arr.length; j += div) {let section = arr.slice(i, i + div).map((a) => a.slice(j, j + div))number += solve(section)}}number += ')'}return number}console.log(solve(video))
LINKS TO THIS PAGE
Edit this page
Last updated on 8/13/2022