[백준] 2447. 별 찍기 - 10 (node.js/javascript/자바스크립트/알고리즘/코딩테스트/재귀함수)
2021. 4. 23. 18:29ㆍFront-end/알고리즘
728x90
반응형
[백준] 2447. 별 찍기 - 10
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞은 사람 | 정답 비율 |
1 초 | 256 MB | 29442 | 15117 | 11028 | 51.162% |
문제
재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27, ...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다.
크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다.
*** * * ***
N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3)×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다.
입력
첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 N=3k이며, 이때 1 ≤ k < 8이다.
출력
첫째 줄부터 N번째 줄까지 별을 출력한다.
예제 입력 1
27
예제 출력 1
내가 작성한 코드 (자바스크립트)
let fs = require('fs');
let input = fs.readFileSync('/dev/stdin').toString();
let number = Number(input);
let str = "";
function PaintStar(i, j){
if(i % 3 === 1 && j % 3 === 1){
str += " ";
}else{
if(Math.floor(i / 3) === 0 && Math.floor(j / 3) === 0){
str += "*";
}else{
PaintStar(Math.floor(i / 3), Math.floor(j / 3));
}
}
}
for(let i = 0; i < number; i++){
for(let j = 0; j < number; j++){
PaintStar(i, j);
}
if(i !== number - 1){
str+= "\n";
}
}
console.log(str);
728x90
반응형
'Front-end > 알고리즘' 카테고리의 다른 글
[백준] 2798. 블랙잭 (자바스크립트/node.js/javascript/알고리즘/코딩테스트) (0) | 2021.04.27 |
---|---|
순열과 조합 알고리즘 (자바스크립트/js/javascript) (1) | 2021.04.26 |
[백준] 11729. 하노이 탑 이동 순서(node.js/javascript/하노이의 탑 알고리즘/코딩테스트/자바스크립트 알고리즘) (1) | 2021.04.23 |
[백준] 3053. 택시 기하학 (자바스크립트/node.js/javascript/알고리즘/코딩테스트) (0) | 2021.04.19 |
[백준] 3009. 네번째 점(node.js/javascript/자바스크립트/알고리즘/코딩테스트) (0) | 2021.04.17 |