코딩테스트 | (JavaScript) 프로그래머스 : 직사각형 별찍기

trevor1107·2021년 7월 30일
0

✅문제

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

❕ 제한사항

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

🎹📢입출력 예제

✍풀어보기

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    
    let output = "";
    // b가 세로
    for(let i = 0; i < b; ++i){
        // a는 가로
        for(let k = 0; k < a; ++k){
            output += "*";
        }
        output += "\n";
    }
    console.log(output);
});

자바스크립트 언어로 처음 푸는 문제다. 출력하는 부분에서 처음에 리턴해야하나? 어떻게 하지? 고민하다가 console.log(a);와 같이 작성되어 있길래 문자열에 합쳐서 console.log를 작성해보니 맞았다..

🎈다른 사람의 풀이

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    const row = '*'.repeat(a)
    for(let i =0; i < b; i++){
        console.log(row)
    }
  
  // 또 다른 방법
    const star = `${'*'.repeat(a)}\n`;
    console.log(star.repeat(b));

});
  • String.repeat() : 문자열을 반복한 값을 반환하는 함수
  • `${}` : ES6(ES2015)에서 부터 지원하는 템플릿 문자열으로 백틱(`)사이에 ${}를 이용하여 변수, 함수, 조건문 등 기능을 작동하게 해준다. (자세한건 참고 자료 사이트에서!)

아니 이렇게 쉽게 푸는거냐고.. 역시 자바스크립트는 지원하는 기능이 다양해서 배울 점이 많다!! 나는 C++방식으로 풀었던 것이라니 ㅎㅎ 뭐 이렇게 공부해 나아가는거지~!



참고 자료 및 사이트 (감사합니다)

profile
프론트엔드 개발자

0개의 댓글