이 문제는 트리형 별찍기 문제에 index를 결합한 별찍기 문제이다. 예시는 다음과 같다.
1
121
12321
1234321
123454321
이 문제는 3가지 부분으로 나눌 수 있다.
메인 반복문(현재 줄을 나타낼 수 있다)
메인 반복문 내의 공백 추가 반복문
메인 반복문 내의 숫자 출력 반복문
다만 console.log에서는 줄바꿈이 기본이라서 text에 임시로 저장하고 줄바꿈이 필요할때 출력하는 방식을 사용하였다.
메인 반복문
for (let i = 1; i <= n; i++){
let text = '';
for (let j = 0; j < n-i; j++){//공백 추가
text += ' ';
}
for (let j = 0; j < (2*i)-1; j++){//숫자 출력
if (j < ((2*i)-1)/2){
text += j+1;
}else {
text += ((2*i)-1)-j;
}
}
console.log(text);
}
숫자 출력에서 사용된 j < ((2*i)-1)/2 조건은 반복의 절반은 숫자가 증가하고, 나머지 절반은 숫자가 감소하는 방향으로 저장하기 위해 사용되었다.
최종 코드
let n = 5;
for (let i = 1; i <= n; i++){
let text = '';
for (let j = 0; j < n-i; j++){
text += ' ';
}
for (let j = 0; j < (2*i)-1; j++){
if (j < ((2*i)-1)/2){
text += j+1;
}else {
text += ((2*i)-1)-j;
}
}
console.log(text);
}'기타' 카테고리의 다른 글
| 연속된 수를 더해서 n이 되는 경우의 수 (0) | 2025.05.26 |
|---|---|
| 뒤집어도 같은 숫자 (0) | 2025.05.26 |
| 별찍기 (0) | 2025.05.26 |
| 우분투, SSH (0) | 2025.05.14 |
| Git, Github (3) | 2025.05.07 |