궁금한게 많은 코린이의 Developer 노트

[TIL] 프로그래머스 문자열 반복 본문

TIL

[TIL] 프로그래머스 문자열 반복

lemonarr🍋 2024. 1. 25. 15:10

요새 취업 준비 때문에 정신이 없다

알고리즘 공부도 틈틈이 하는 중이다..아직 제대로 이해는 못한 것 같지만

문제를 요새 못 푼 것 같아서 앞으로 꾸준히 올려보려고 한다

const readline = require('readline');
const rl = readline.createInterface({
    input: process.stdin,
    output: process.stdout
});

let input = [];
let stringwrap = [];

rl.on('line', function (line) {
    //단어 기준으로 자르기
    input = line.split(' '); //string,5
}).on('close', function () {
    str = input[0];  //잘라진 부분에서 첫번째: string
    n = Number(input[1]);  //잘라진 부분에서 두번째: 5
    //반복된 문자열을 담을 배열 변수를 만듦.
    let arrayText = [];
               
    for(i = 0; i < n; i++){
         str;
    }
    console.log(str.repeat(i));
    //str = new Array;
   //str = stringwrap;
});

 

이게 왜 되지? 의 정석..

 

 

주어진 배열을 단어기준으로 자르고

반복문을 사용해서 string을 5번 반복해야겠다.

 

그 결과,,

 

string

string

string

string

string

 

이런 식으로 답이 도출되서 

어떻게 하면 문자열을 병렬로 출력할 수 있을까 하면서 알아보다가

 

repeat()이라는 함수를 발견해서 사용해보았는데

 

 

 

이런식으로 답이 나와서 

 

 

for 반복문 바깥에다가 선언해주었더니 된다.

 

 

황당한 점은

 

반복문 안에 있는 str; 을 지워주어도 답이 된다..이게 왜 되지..?

하지만 반복문을 지우게 되면 오류가 생긴다..반복문이 아니더라도 답이 되는 거였던 것 같다.

 

 

 

 

다른 사람의 문제풀이 1

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];
    n = Number(input[1]);
    console.log(str.repeat(n));
});

 

repeat() 문법을 사용했고

반복문을 사용하지 않더라도 풀이가 가능하다는 것을 알게되었다.

 

 

 

 

다른 사람의 문제풀이 2

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 = '';
    n = Number(input[1]);
    for (let i = 0; i < n; i += 1) {
        str += input[0]
    }
    console.log(str)
});

 

for 반복문을 사용하고 

str 변수 자체에 input [0] 을 계속해서 넣어주는 방법으로 문제풀이 하셨다.