Lv. 1 - 직사각형 별찍기
문제 설명
이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다. 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
제한사항
- n과 m은 각각 1000 이하인 자연수입니다.
입출력 예
2-1) 입력
5 3
2-2) 출력
*****
*****
*****
문제 풀이
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++) {
let stars = "";
for (let j = 0; j < a; j++) {
stars += "*";
}
// 콘솔에 현재 까지 저장된 stars 값을 찍는다. (*****)
console.log(stars);
// i가 b(3) 보다 작을 경우 맨 위로가 다시 for문을 시행한다.
}
});
풀이
- 두개의 정수 n,m 이 주어지고 길이가 n, 세로가 m으로 5와 3을 입력했을 때 출력과 같이 나오려면 반복문을 사용해야한다.
- 먼저 입력 값 b(3) 만큼 for문을 사용하여
stars
변수를 초기화 해준다. - 첫 번째 for문이 한 번 돌때마다 입력 값 a(5) 만큼 반복문을 돌려준다.
- console.log에 현재 까지 저장된 stars의 값을 찍어준다.
다른 사람의 풀이 참고
repeat
메서드를 사용해서 간단하게 구현했다.
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() 메서드
메서드에 주어진 수 만큼 반복해서 붙인 새로운 문자열을 반환해준다. 예시는 아래와 같음
let str = "*";
let strRepeat = str.repeat(5); // *****
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges