본문 바로가기
코딩테스트/Javascript

[Level1] 직사각형 별찍기 답안 및 풀이

by SRin23 2021. 7. 21.

◇ 문제 설명

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

 

◇ 제한 조건

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

 

◇ 입출력 예시

입력 출력
5 3 *****
*****
*****

 

◇ 초기 내용

※ [출처] 프로그래머스-코딩테스트 연습-문제명

※ 초기 내용을 참고하여 문제에 맞는 코드를 작성하세요.

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

 


◇ 답안

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

 

◇ 답안 힌트

    ▶  행이 b, 열이 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]);
    
    let star; //문자열로 사용할 star
    for(let i = 0; i<b; i++){
        //반복문 돌때마다 star를 "'빈공백으로 초기화
        star = ""
        for(let j = 0 ;j<a; j++){
            //star에 j만큼 *추가
            star+="*"
        }
        //*추가 다하면 console.log로 *찍기
        console.log(star)
    }
});

<주의>

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++){
        for(let j = 0 ;j<a; j++){
            //*찍히고 줄바꿈이됨
            console.log("*")
        }
        console.log()
    }
});

이렇게 코드를 작성할 경우 아래와 같이 출력되는것을 주의하자!!

입력 출력
2 3 *
*
*

*
*
*

*
*
*

 

◇ 실행결과

직사각형 별찍기 실횅결과

 

◇ 출처

https://programmers.co.kr/learn/challenges

 

코딩테스트 연습

기초부터 차근차근, 직접 코드를 작성해 보세요.

programmers.co.kr

 

댓글