• 카테고리

    질문 & 답변
  • 세부 분야

    프로그래밍 언어

  • 해결 여부

    미해결

별찍기 마름모 문제입니다.

24.06.21 11:51 작성 조회수 92

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를 만들어서 해야되는 걸까요?

  • 아니면 콘솔로 나온 결과는 반대로 해서 한번더 다시 나올수 있도록 해야되나? 라는 생각도 해보았습니다.

답변 1

답변을 작성해보세요.

1

힌트를 드리자면

Math.abs 함수를 쓰시면 for문 한 방에 가능합니다(절댓값을 출력하는 함수입니다)

Math.abs(-1) === 1

Math.abs(1) === 1

하리님의 프로필

하리

질문자

2024.06.21

힌트를 주신 이유가 숫자 범위를 - 까지 쓰라는 게 아닐까 해서 다시 해보았습니다.

마름모로 출력이 나오는데 2번이 나옵니다 왜 그러는지를 모르겠어서 다시 질문 합니다!

분명히 if문으로 합이 5가 되게 조건을 걸었는데

왜 for 문이 2번 반복을 하는걸까요?

 

일단 마이너스 범위를 하시는 건 맞습니다. 그런데 for문을 두 번 쓸 필요가 없습니다. 한 번이면 됩니다.

절댓값과의 규칙을 찾아보세요.

별 절댓값 공백

1 -2 2

3 -1 1

5 0 0

3 1 1

1 2 2

채널톡 아이콘