이번 글은 연습문제 풀이입니다. 이전 글에서 연습문제를 풀어 보신 분들만 아래 내용을 확인하시길 바랍니다.
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개의 별을 찍어주면 됩니다.
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)만큼 먼저 찍어 준 다음, 별을 줄 번호의 반대로 찍어주면 되겠죠.
이 문제는 난이도가 꽤 있습니다! 못풀어도 괜찮습니다.
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"); }
물론 자신이 작성한 코드가 위 코드와 완전히 다르더라도 2중 반복문을 사용하였고 별모양만 똑같이 찍히면 정답입니다^^
댓글
이 글에 댓글을 다시려면 SNS 계정으로 로그인하세요. 자세히 알아보기