알고리즘/JS

직사각형 별찍기

namu445 2022. 1. 14. 12:24

문제 설명

이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.

제한 조건

  • n과 m은 각각 1000 이하인 자연수입니다.

 

for문 두개를 돌렸다. 원하는 회수만큼 찍힌다.

for (let i = 0; i < 3; i++) {
  for (let i = 0; i <5; i++) {
    console.log("*");
  }
  console.log("a");
}

문제가 있다. console.log로 출력하니 줄바꿈이 생긴다. 이렇게는 직사각형을 찍을 수 없다. 검색을 시작했다.

 

첫 시도는 document.write 에러가 난다. MDN에 검색했다.

for (let i = 0; i < 3; i++) {
  for (let i = 0; i <5; i++) {
    document.write("*");
  }
  document.write("a");
}

document.write는 html과 같이 사용하는 기능이었다. 알고리즘 테스트에서 쓰기는 무리일 듯

MDN 검색결과: https://developer.mozilla.org/ko/docs/Web/API/Document/write

 

Document.write() - Web API | MDN

document.open()에 의해 열린 문서 스팀에 텍스트 스트링을 적는다.

developer.mozilla.org

js에서 바로 문자를 출력하는 방법은 찾지 못했다. 값을 변수에 저장하고 변수를 출력해야 할 듯

 

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {    
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
        
    for (let i=0; i<b; i++) {
        let str = "";
        for (let i=0; i<a; i++) {
            str = str + "*"
        }
        console.log(str);
    }
    
});
}