프로그래머스) 직사각형 별찍기

minji jeon·2022년 7월 16일
0

알고리즘

목록 보기
9/29

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

1. 접근

우선 별을 몇번 반복시켜야 할까 했는데 repeat 함수가 생각났다.
그래 그럼 가로 별을 찍으면
세로는 어떻게 찍을까하다가 오 그럼 반복문은 for문이지 해서
간단하게 풀게되었다. 하지만 다른 사람들의 답을 보면서
ah...?

2. 내코드

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);

    const r= "*".repeat(a)  //a는 첫번째 입력값. *을 a번 반복한다.

    for(let i=0; i< b ; i++){
        console.log(r)    // r= *** --> r을 b번 반복하여 출력
    }
});

앞으로도 자주 사용하게될 repeat함수는 "가".repeat(2)시 "가"가 두번 반복된다.
단, 가로로 출력됨을 알고있자.

3. 남의코드

process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]);
    let r = `${"*".repeat(a)}\n`  // r = *을 a번출력 + \n (줄바꿈)
console.log(r.repeat(b))   // r을 b번 반복
});

--> 나와 다른 점은 세로로 출력해주기 위해 \n을 사용하였다.
그리고 repeat 안에 repeat
왜..나는 repeat을 알고도 이걸생각못했지...?ㅋㅋㅋ

for(let i=0; i<b; i++){
    let star= ''
for(let j=0; j<a; j++){
 star+= "*"         // star = star+ * 
} 
    console.log(star)
}

for안에 for문 이게가장 기본적인 방법이 아닐까....

profile
은행을 뛰쳐나와 Deep Dive in javascript

0개의 댓글