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(""));
}