출처
백준 온라인 저지
https://www.acmicpc.net/problem/2675
문제
문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.
QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ\$%*+-./: 이다.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
풀이
입력 데이터의 첫번째 줄에 있는 테스트 케이스 개수 T 값으로 For 문을 돌려줍니다.
문자열 S의 각 문자를 R번 반복시켜 새로운 변수에 모든 문자를 누적시켜준 후 출력시켜주면 됩니다.
코드
const input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const num1 = input.shift();
for (let i = 0; i < num1; i++) {
let answer = '';
const [num2, str] = input[i].split(" ");
for (let j = 0; j < str.length; j++) {
for (let c = 0; c < num2; c++) {
answer += str[j];
}
}
console.log(answer);
}
다른 방식
문자열 S의 각 문자를 R번 반복시켜 새로운 문자를 만드는 부분은 For 문을 돌려 누적시키는 방법도 있지만 repeat 메서드를 이용하는 방법도 있습니다.
let input = require('fs').readFileSync('/dev/stdin').toString().split('\n');
const num1 = input.shift();
for (let i = 0; i < num1; i++) {
let answer = '';
const [num2, str] = input[i].split(" ");
for (let j = 0; j < str.length; j++) {
answer += str[j].repeat(num2);
}
console.log(answer);
}