(1).백준 2448번 별 찍기 - 11는 재귀를 사용해서 별 모양을 찍어내는 문제였다.
예전 종이접기 같은 재귀에서도 사용했었지만 최근에 재귀를 사용할 일이 없어서 살짝 당황했는데
3, 6, 12 패턴을 확인해보면서 일단 제일 작은 단위인 3의 출력 결과를 기본 반환값으로 지정해주고
그 이후에는 바로 전단계의 별 그림을 가져오게 하는 방식으로 재귀를 호출한 다음
별의 형태가 윗줄, 아랫줄으로 구분되기 때문에
아랫줄은 두 문자열 사이에 공백 한칸을 두고 합쳐줬고
윗줄의 경우 왼쪽, 오른쪽에 공백이 들어가야 했는데 입력된 n의 절반만큼씩 증가했기 때문에
repeat을 사용해서 공백을 채워줬다.
const input = 6
const recurtion = (n) => {
if(n == 3){
return [' * ', ' * * ', '*****']
}
const arr = recurtion(n / 2)
const result = []
for(let i = 0 ; i < arr.length ; i++){
result.push(' '.repeat(n / 2) + arr[i] + ' '.repeat(n / 2))
}
for(let i = 0 ; i < arr.length ; i++){
result.push(arr[i] + ' ' + arr[i])
}
return result
}
console.log(recurtion(input).join('\n'))
'회고' 카테고리의 다른 글
[개발일지] - 477 (0) | 2024.10.22 |
---|---|
[개발일지] - 476 (0) | 2024.10.21 |
[개발일지] - 474(주말) (0) | 2024.10.19 |
[개발일지] - 473 (0) | 2024.10.18 |
[개발일지] - 472 (0) | 2024.10.17 |