반응형
Notice
Recent Posts
Archives
Today
Total
Link
관리 메뉴

꾸준하게

[JS코테] 직사각형 별찍기 본문

JS코딩테스트

[JS코테] 직사각형 별찍기

DaeunCoding 2023. 5. 2. 11:15
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12969

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

[나의 풀이]

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

 

평소에 풀던 함수 방식과 달라서 당황했지만,

process.stdin.on();

이라는 문법을 알게 되었다.

 

저 문법 내에서는 console.log()로 찍힌 결과값이 출력된다.

 

그리고 \n이 자바스크립트에서 줄바꿈을 해준다.

 

 

[다른 풀이]

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)
    }
});

 

내가 알고 싶었던 부분이 다른 풀이에 있었다.

바로 repeat().

repeat을 사용하여 '*'를 a번 반복해줌으로써 for문을 대체할 수 있다.

 

그리고 따로 \n을 사용하지 않고 console.log()를 반복해줄 수 있다.

728x90
반응형