[자바스크립트 연습문제] 별찍기 풀이

이번 글은 연습문제 풀이입니다. 이전 글에서 연습문제를 풀어 보신 분들만 아래 내용을 확인하시길 바랍니다.






[자바스크립트 연습문제] 별찍기 1. 풀이

TMS.clearScreen();
for(var i=1; i<=5; i++){
  for(var j=1; j<=5-i+1; j++){
    TMS.insertText("*");
  }
  TMS.insertText("\n\r");
}

전체 줄수가 5이고, i가 현재 줄의 번호이므로 각 줄당 5-i+1개의 별을 찍어주면 됩니다.

[자바스크립트 연습문제] 별찍기 2. 풀이

TMS.clearScreen();
for(var i=1; i<=5; i++){
  for(var j=1; j<=i-1; j++){
    TMS.insertText(" ");
  }
  for(var j=1; j<=5-i+1; j++){
    TMS.insertText("*");
  }
  TMS.insertText("\n\r");
}

첫째줄에는 빈칸이 0칸, 별이 5칸, 둘째 줄에는 빈칸이 1칸, 별이 4칸 ... 즉 빈칸을 줄 번호-1(j<=i-1)만큼 먼저 찍어 준 다음, 별을 줄 번호의 반대로 찍어주면 되겠죠.

[자바스크립트 연습문제] 별찍기 3. 풀이

이 문제는 난이도가 꽤 있습니다! 못풀어도 괜찮습니다.

TMS.clearScreen();
for(var i=1; i<=5; i++){
  for(var j=1; j<=5; j++){
    if(j<=5-i+1){
      TMS.insertText("*");
    }
    else{
      TMS.insertText(" ");
    }
  }
  for(var j=1; j<=5; j++){
    if(j>=i){
      TMS.insertText("*");
    }
    else{
      TMS.insertText(" ");
    }
  }
  TMS.insertText("\n\r");
}

왼쪽 반쪽을 그리는 조건과, 오른쪽 반쪽을 그리는 조건을 따로 나누어서 코딩한 모습입니다. 이걸 합치면 아래와 같이 됩니다.

TMS.clearScreen();
for(var i=1; i<=5; i++){
  for(var j=1; j<=10; j++){
    if(j<=5-i+1 || j-5>=i){
      TMS.insertText("*");
    }
    else{
      TMS.insertText(" ");
    }
  }
  TMS.insertText("\n\r");
}

댓글

댓글쓰기

이 글에 댓글을 다시려면 SNS 계정으로 로그인하세요. 자세히 알아보기

UP