const input = require("fs")
.readFileSync("예제.txt")
.toString()
.trim()
.split("\n")
.map((v) => v.split(" ").map((v) => +v))
.flat();
function cantore(str) {
if (str.includes("---")) {
const len = str.length / 3;
const splitedArr = [];
for (let i = 0; i <= str.length - len; i += len) {
splitedArr.push(str.slice(i, i + len));
}
splitedArr[0] = cantore(splitedArr[0]);
splitedArr[1] = splitedArr[1].replaceAll("-", " ");
splitedArr[2] = cantore(splitedArr[2]);
return splitedArr.join("");
}
return str;
}
const result = input.map((a) => {
const dash = "-".repeat(3 ** a);
return cantore(dash);
});
console.log(result.join("\n"));
cantore함수를 만든다.
이 함수는 만약 str이"---" 를 포함하고 있다면 str 의 길이 / 3 을 하여 len으로 할당한다.
splitedArr 배열을 만들어 3개로 나누어진 "-" 들을 첫번째배열에 또 재귀함수를 사용 ,중간의 배열은 "-" 를 공백으로 바꾸어주며 "- -" 로 나누어질때까지 반복한다. str 에 "---"가 포함되지않을때까지 반복했으므로 결과를 join으로 리턴한다.
'알고리즘' 카테고리의 다른 글
[BOJ]24060 - 병합 정렬1(JS) (0) | 2024.11.06 |
---|---|
[BOJ] 25501 - 재귀의 귀재(JS) (0) | 2024.11.05 |
[BOJ] 20920 - 영단어 암기는 괴로워(JS) (0) | 2024.10.11 |
[BOJ] 2108 - 통계학 (JS) (1) | 2024.10.08 |
[BOJ] 26069 - 붙임성 좋은 총총이(JS) (0) | 2024.10.07 |