문자열 str과 정수 n이 주어집니다.
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.
1 ≤ str의 길이 ≤ 10
1 ≤ n ≤ 5
입력 #1
string 5
출력 #1
stringstringstringstringstring
입력 받은 n회 만큼 문자열 str을 반복출력을 보고 단순하게 for문 돌려야겠다고 생각했다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
for(let i = 0; i < input[1];i++){
console.log(input[0]);
}
})
input이라는 빈 배열을 만들고 readline을 통해 입력받은 문자열을 입출력 예를 보고
split 함수를 사용하여 공백을 기준으로 나눠서 input 배열에 넣었다.
input = ['string','5'] 이렇게 들어가게 된다.
그리고 for문을 활용해서 코드를 완성하고 코드 실행을 해봤다.
string
string
string
string
string
결과가 위와 같이 나왔다. 출력예를 보면 답은 한줄로 출력되야 한다.
줄바꿈을 없애기 위한 방법을 찾아봤다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
for(let i = 0; i < input[1];i++){
process.stdout.write(input[0]);
}
})
일단 줄바꿈이 발생했던 이유는 자바스크립트에서 console.log()로 데이터를 출력하면 개행문자가 포함되어 출력된다고 한다.
줄바꿈 없이 데이터를 출력하고 싶으면 precess.stdout.write(데이터);를 사용하면 된다고 한다.
그래서 console.log 부분을 해당 코드로 바꿔서 출력해 보니 한줄로 정상 출력 되었다.
stringstringstringstringstring
생각해보니 repeat함수가 생각났다.
str.repeat(n);
MDN사이트의 repeat함수의 정의는 아래와 같다.
repeat() 메서드는 문자열을 주어진 횟수만큼 반복해 붙인 새로운 문자열을 반환합니다.
완전 이 문제의 해결법과 같다...ㅋㅋㅋㅋ
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
console.log(input[0].repeat(input[1]));
})
굳이 for문으로 돌아갈 필요 없이, input[0] 즉 'string'을 input[1] 5회 만큼 반복해서 출력하면된다.
나는 repeat함수의 존재를 알고있었다.
하지만 이 문제를 접했을 때 떠올리지 못했다.
조금더 익숙한 for문을 먼저 떠올렸다.
너무 익숙한것만 쓰는게 아닌가 싶다. 그리고 컴퓨팅적 사고가 부족하다는 느낌이 든다.
언어 스킬도 물론 중요하지만 문제해결을 위한 논리적 사고, 컴퓨팅적 발상을 하는 힘을 키울 필요를 느낀다.