728x90

https://www.acmicpc.net/problem/2675

Code

https://github.com/DasolPark/Algorithm_JavaScript/blob/40b59357968466b842f18f3246d2964883b97c86/Baekjoon/2675.js

😢 긴가민가? 하면서 계속 진행하며 풀어봤더니 해결된 문제. 문자열은 역시 배열 index를 잘 다뤄야 좋다(문자열도 배열이니까)

😊 T에 Test Case 수를 저장하고, 그 수만큼 반복되는 for loop을 열어준다.
반복할 수인 R을 따로 저장해주고, 반복될 문자열 S도 따로 저장해주는데, 특히 S는 배열 String에서 그냥 String으로 변환해준다.
( 처음에 입력값을 가져올 때 R과 S는 함께 있으므로, split(' ') 후 slice를 이용해 잘라준다)
마지막으로, 문자열의 길이 S만큼 반복하는 for loop안에 반복할 수 R만큼 반복하는 for loop을 열어줘서 같은 문자를 P에 중복 대입해준다. 한 문장이 끝날 때마다 console.log(P);를 통해 출력해주면 된다.

✔ parseInt()

String을 Number로 변환해주기 위해 사용하였다.
(자세한 내용은 JavaScript-helper method 카테고리에 있다)

✔ split(' ')

R과 S를 분리하기 위해 사용하였다.
(자세한 내용은 JavaScript-helper method 카테고리에 있다)

✔ slice()

R은 index 0, S는 index 1에 있으므로, slice를 이용해 잘라서 저장해준다.
(자세한 내용은 JavaScript-helper method 카테고리에 있다)

Full Code

// Repeat String
 
// 2nd Solution(Understandable code)
 
// For submit
 
// const fs = require('fs');
// const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
 
// For local test
const input = ['2', '3 ABC', '5 /HTP'];
const T = parseInt(input[0]);
 
for (let i = 1; i <= T; i++) {
const R = parseInt(input[i].split(' ').slice(0));
const S = input[i]
.split(' ')
.slice(1)
.toString();
let P = '';
 
for (let j = 0; j < S.length; j++) {
for (let k = 0; k < R; k++) {
P += S[j];
}
}
console.log(P);
}
 
// 1st Solution
 
// For submit
 
// const fs = require('fs');
// const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
 
// For local test
// const input = ['2', '3 ABC', '5 /HTP'];
// const T = parseInt(input[0]);
 
// for (let i = 1; i <= T; i++) {
// const testCase = input[i].split(' ');
// const R = parseInt(testCase[0]);
// let result = '';
// for (let j = 0; j < testCase[1].length; j++) {
// for (let k = 0; k < R; k++) {
// result += testCase[1][j];
// }
// }
// console.log(result);
// }

+ Recent posts