Algorithm_javascript/5. 문자열
백준 1675번 문자열 반복 (javascript, node.js)
luminouswy
2023. 5. 20. 15:13
반응형
문제
- 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다. S에는 QR Code "alphanumeric" 문자만 들어있다.
- QR Code "alphanumeric" 문자는 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ$%*+-./: 이다.
입력
- 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 반복 횟수 R(1 ≤ R ≤ 8), 문자열 S가 공백으로 구분되어 주어진다. S의 길이는 적어도 1이며, 20글자를 넘지 않는다.
출력
- 각 테스트 케이스에 대해 P를 출력한다.
예제입력 1
2
3 ABC
5 /HTP
예제출력 1
AAABBBCCC
/////HHHHHTTTTTPPPPP
문제풀이
- 주어진 단어를 한 문자씩 R번(주어진 반복 횟수) 반복하여 새로운 문자열 p로 만들어서 출력
1. 두 번째 줄 입력 값부터 숫자와 단어를 분리하고
2. 분리된 단어를 다시 한문자씩 나눠서 반복 횟수만큼 반복하여 배열에 저장 후
3. 한 번에 배열을 문자로 출력!!
//2675번
//문자열 반복
// 문자열 S를 입력 받은 후 각 문자를 R번 반복하여 새문자열P를 만든후 출력
// S를 하나씩 나눠서 repeat()함수를 활용하여 r번 반복후 변수에 담아서 출력
const fs = require("fs");
const file = process.platform === "linux" ? "dev/stdin" : "./text.txt";
const input = fs.readFileSync(file).toString().trim().split("\n");
const t = input[0];
for (i = 1; i <= t; i++) {
// r = 반복횟수 , s = 문자열
let [r, s] = input[i].split(" ");
// 문자열을 하나씩 분리
s = s.split("");
// 하나씩 나눈 문자열을 r번 반복하여 p에 푸쉬
let p = [];
for (let j = 0; j < s.length; j++) {
p.push(s[j].repeat(r));
}
console.log(p.join(""));
}