ℹ️ INFORMATION/💾 HTML + CSS + JS

[JS] 자바스크립트로 콘솔창에 for문을 이용해서 다이아몬드 별찍기 연습

is. 2021. 3. 25. 17:11
반응형

오랜만에 다시 연습하는

자바스크립트!

 

 

오랜만에 보니까 진짜 한두 달 사이에

정말 많이 까먹었다는 걸 느꼈다..

 

하 연초에 공부했던

시간이 아까워진다.. 흑 ㅜㅜ

 

아무튼 지금은

제로초님의 유튜브 강의

ES2020라는 재생목록을 통해서

자바스크립트 예제 문제 풀고

복습을 하는 중이다.

 

지금은 숫자야구 만드는 걸

하고있는 중인데 마침

별 찍기 연습을 하는 부분이었다.

 

이 정도는 다행히 아직

머릿속에 대강 있어서 

조금 해보니까 쉽게 할 수 있었다.

 

참고로,

다이아몬드 별찍기를 제외한

다른 별찍기들은

여러 번 반복해서 해보면

거의 비슷하고 좀 쉬운 편이라

나는 다이아몬드만 

새롭게 해 보았음!

 

별찍기로 다이아몬드를 하는거..

이거는 딱 머릿속에서 

연상이 되지 않았다.

(참고로 이런 모양)

 

  *  

 *** 

*****

 *** 

  *  

 

머릿속으로는 잘 상상이 안 가서

나의 그린색 영롱한 뉴 베이비

아이패드 에어4를 열어서

프로크리에이트 어플을 켰다.

이러려고 샀던 건 아닌데..? ㅎㅎ

 

 

뭔가 알듯 말듯한 이 느낌이지만

대충 보다 보면

빈칸 개수에 2를 곱하고 별의 수를 더하면

항상 5가 나온다는 걸 알 수 있었다.

 

그럼 이제 빈칸의 개수와 별의 개수만

나오게 하면 되는 거다.

 

일단 나는 빈칸 수를 a, 별(*)의 수를 b라고 

그냥 쉽게 정했다.

i는 반복문이 돌아가는 횟수이다!

 

근데 이건 아무리 봐도

덧셈, 곱하기, 빼기만 가지고는

나올 수 없는 순차적인 값이라

혹시 나머지?라는 생각이 들었다.

 

헐! 맞잖아??

 

그래서 결국 나오게 된 계산법!

 

참고로 자바스크립트에서

나누셈의 나머지

% 연산자를 통해서 계산할 수 있다.

 

 

이걸 통해서 빈칸의 수와 별표의 수를

회차인 i를 통해서 표현하면,

a = 2 - (5 % i)

b = (5 % i) * 2 + 1

이 된다.

 

이제 수식이 나왔다면

그냥 반복문에 집어넣기만 하면

끝!

 

for ( i = 1; i < 6; i++) {
  console.log(' '.repeat(2 - (5 % i)) + '*'.repeat( (5 % i) * 2 + 1) );
}

 

위 코드를 콘솔 창에 넣어보면

문제없이 잘 작동해서

다이몬드를 출력한다는 사실!

 

다른 답변이 있을 수도 있지만,

나 혼자 해보려고 다른 답은

찾아보지 않았다.

한번 보러 가야지 ㅎㅎ

 

휴 오랜만에 하는 자바스크립트,

살짝 땀날 뻔했다.. ㅎ

복습을 다시 해야 할 시간!

반응형