코딩테스트 연습입니다. 다른 문제를 풀어볼게요.
문자열 str과 정수 n이 주어집니다.
str이 n번 반복된 문자열을 만들어 출력하는 코드를 작성해 보세요.
string 5
stringstringstringstringstring
주어진 코드
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
str = input[0];
const n = Array(5).fill(str).join('');
console.log(n);
});
처음에 헤맸는데요. 처음에는 반복문으로 출력하면 되겠지 생각했습니다.
for (let i = 0; i < 5; i++) {
console.log(str);
};
이렇게 생각하고 풀었는데
string
string
string
string
string
이렇게 나옵니다. 왜 세로로 나오지 가로로 나와야 되는데... 음... 구글링해도 못 찾아서
아는 동생한테 물어봤습니다. 그랬더니 join으로 ','를 ''로 비워서 붙여버리고 Array 써야한다고 하더군요.
그래서 array에 string을 넣고 join을 하는 방식으로 구글링 해서 찾았습니다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
str = input[0];
const n = Array(5).fill(str).join('');
console.log(n);
});
이렇게 해봤는데... 음 안되네요.
안되서 또 고민해봅니다. n 외에도 새로 설정해야되나 고민 해봤는데
5를 문자열로 취급해서 Array에 넣어봤습니다.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
const str = input[0];
const n = parseInt(input[1]);
const repeat = Array(n).fill(str).join('');
console.log(repeat);
});
이렇게 해봤는데 되긴... 됩니다...
바뀐건 parseInt로 5를 형변환해서 문자열 합치기 ('string'+'5')처럼 된거 같은데
stringstringstringstringstring은 형변환으로 둘 다 문자열 맞춰야 답이 되는건가? 싶더라구요.
const readline = require('readline');
const rl = readline.createInterface({
input: process.stdin,
output: process.stdout
});
let input = [];
rl.on('line', function (line) {
input = line.split(' ');
}).on('close', function () {
const str = input[0];
const n = parseInt(input[1]);
console.log(str.repeat(n));
str은 'string'
n은 5 (형변환해서 문자인 채로 5)
console.log(string.반복(5번)); 하면
stringstringstringstringstring이 됩니다.
const str = input[0];
const n = parseInt(input[1]);
console.log(str.repeat(n));
이거 보고 아차 싶었습니다.
아 반복문 repeat으로 5번 반복시켰구나! (n = 5 담겨 있으니까)
그리고 parseInt(input[1]);는 Number(input[1]);도 사용이 됩니다.
n = Number(input[1]);
str = '';
for (let i = 0; i < n; i++) {
str = str + input[0];
};
console.log(str);
이건 다른 분 답인데요.
n은 5, str은 비우고 for 반복합니다.
str = str + string ('' + string) 이므로 string이죠.
string으로 5번합니다. 그래서 console.log(str);하면 stringstringstringstringstring
그러면
되네요 신기합니다...