728x90
n과 m이 주어졌을 때 별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력하는 첫 번째 알고리즘 문제풀이이다.
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); }); |
기존에 제시된 내용을 보면 위와 같다!
const 가 뭔지 몰라서 찾아봤는데
const = "상수". 영어로는 constant, 같은 값이 계속 유지된다는 뜻이다.
(문제 풀이 생각)
1. 예시에 입력을 5로 했는데, 별 문자 *이 가로로 5개가 "반복" 됐으니까, 문자열을 반복하자!
2. 반복문을 써서 세 번을 세로로 내리자!
✅ 최종 코드!
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); const row = '*'.repeat(a) for(let i =0; i < b; i++){ console.log(row) } }); |
const row = '*'.repeat(a)
위 내용처럼 const row로 row의 값을 "상수"로 해주었다.
const row = a 라고 주게 되면 a라는 값을 가지게 되니까, 별 문자 *을 a 값만큼 반복해! 라고 풀이한 의미이고
for(let i=0, i<b; i++)
예제를 보면 b는 3인데, 숫자로만 생각하니까 i<b로 하면 2까지 밖에 산출이 안되잖아? 이렇게 문과식으로 생각을 했는데, 오류는 이건 컴퓨터 숫자라는 것!
즉, 컴퓨터는 0부터 숫자가 시작이 되니까
let i=0; i<b; i++
이렇게 써주면, 0부터 b값 3 미만인 2까지 반복된다는 것이고 0~2는 세 번의 반복이 이루어진다는 의미가 된다.
✅ 팀원의 다른 코드
process.stdin.setEncoding('utf8');
process.stdin.on('data', data => {
const n = data.split(" ");
const a = Number(n[0]), b = Number(n[1]);
console.log(star(a,b));
function star(num1,num2){
let star = '';
for(let i=0; i<num2; i++){
star+='*';
for(let j=1; j<num1; j++){
star+='*';
}
star+='\n';
}
return star;
}
});
통과 완료!
728x90
'알고리즘 스터디 > [프로그래머스] 연습문제' 카테고리의 다른 글
[알고리즘] 없는 숫자 더하기 문제풀이(자바스크립트 javascript) (0) | 2022.07.15 |
---|---|
[알고리즘] 문자열을 정수로 바꾸기 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |
[알고리즘] 두 정수 사이의 합 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |
[알고리즘] 가운데 글자 가져오기 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |
[알고리즘] 짝수와 홀수 문제 풀이(자바스크립트 javascript) (0) | 2022.07.15 |