[프로그래머스 코딩테스트 연습문제] 직사각형 별찍기 | 알고리즘 설명 & 문제 풀이 with 자바스크립트(Javascript)

Re_Go·2023년 12월 9일
0

코딩테스트연습

목록 보기
10/98
post-thumbnail
post-custom-banner

1. 문제 설명

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

2. 제한 조건

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

3. 예시

입력

5 3

출력

*****
*****
*****

4. 첫번째 문제 풀이(2023-12-09)

사실 이 문제 자체가 기본적인 반복문을 이용한 기호 출력인데, 자바스크립트에 console.log 메서드는 출력 되는 문자열의 맨 끝에 자동으로 개행 문자(\n)를 삽입하기 때문에 보통 연속된 문자를 찍고자 한다면 빈 문자열의 변수 하나에 해당 문자를 누적하여 최종 출력하는 방식을 사용합니다.

그리고 이중 for문을 돌려 첫번째 for문은 빈 문자열을 초기화 하고 누적 된 문자열의 변수를 출력하는 방식의 역할로,

두번째 for문은 해당 빈 문자열의 변수를 특정 문자열이나 기호로 누적 할당해주는 역할로 사용하여 해당 문제를 푸는 것도 가능하며

그리고 문제 입력의 형식이 이전에 접해보았던 코드 양식이 이전에 접했던 방식과는 사뭇 달라 이 부분도 흥미로웠던 요소가 아니였을까 생각됩니다.


process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
    const n = data.split(" ");
    const a = Number(n[0]), b = Number(n[1]); // // 정수 n과 m을 a와 b로 각각 담는 대입문

    for(let i = 0 ; i < b ; i++){ // 변수 b에 대한 반복문
    	let line = ""; // 빈 문자열로 초기화
    	for(let j = 0 ; j < a ; j++){ // 변수 a에 대한 반복문
        	line += "*"; // 해당 기호를 문자열 변수 line에 저장
        };
        console.log(line); // 해당 문자열을 출력하고 메서드에 의해 자동으로 붙여진 개행 문자 (\n)에 의해 줄이 바뀌어짐.
    };
});
profile
인생은 본인의 삶을 곱씹어보는 R과 타인의 삶을 배워 나아가는 L의 연속이다.
post-custom-banner

0개의 댓글