작성
·
156
0
안녕하세요! 마름모 별찍기 문제입니다 !
우선 위에 마름모는 출력을 하였는데 밑으로 다시 내려오는 마름모가 안되어서 질문 드립니다.
for(let j =0; j<6 ;j++){
if(j % 2 ===0) continue
for(let i =0; i<3; i++){
for(i+ j+i ===5)
console.log(' '.repeat(i)+ '*'.repeat(j)+' '.repeat(3-i));
}
}
이 for문 에서 종료식을 바꿔야될것 같은데 지금은 종료식이 1씩 더해지는 것인데 혹시 종료식이 1씩 빼지는 것도 동시에 할수 있는 것 이 있을까요?
아니면 그림에 나온것 처럼 따로 k를 만들어서 해야되는 걸까요?
아니면 콘솔로 나온 결과는 반대로 해서 한번더 다시 나올수 있도록 해야되나? 라는 생각도 해보았습니다.
답변 2
0
못 풀어서 찾아보다가 질문해주신 덕분에 힌트를 얻었네요.
절대값을 이용할 생각은 하지도 못 했어요.
저는 이렇게 해결했어요.
for(let i =0; i<5; i++){
console.log(' '.repeat( Math.abs(2 - i)) + '*'.repeat(5 - Math.abs(4 - i * 2)) )
}
힌트를 주신 이유가 숫자 범위를 - 까지 쓰라는 게 아닐까 해서 다시 해보았습니다.
마름모로 출력이 나오는데 2번이 나옵니다 왜 그러는지를 모르겠어서 다시 질문 합니다!
분명히 if문으로 합이 5가 되게 조건을 걸었는데
왜 for 문이 2번 반복을 하는걸까요?