programmers

[Programmers Level 0] 잘라서 배열로 저장하기 Javascript

냠냠맨 2022. 11. 28. 21:23

문제정보

 

문제는 다음과 같습니다.

문자열과 정수가 매개변수로 주어지는데 n만큼씩 문자열을 잘라서

배열에 저장시키는 문제입니다.

 

제 생각엔 substring()을 활용해서 문제를 풀 수 있을 것 같아서

for문과 substring()을 사용해봤습니다.

 


 

 

나의풀이

function solution(my_str, n) {
    let answer = []
    let counter = n
    for(i=0; i<my_str.length / n ; i++) {
        answer.push(my_str.substring(i*n,counter))
        counter += n
    }
    return answer
}

 

정답을 저장해줄 answer 변수를 선언하고

substring()에 사용할 counter변수를 선언해줬습니다.

 

my_str의 길이 / n을 해주면 얼마나 반복해야할지 알 수 있을테니 그만큼 반복을 시켜줍니다.

substring()
 메소드는 string 객체의 시작 인덱스로 부터 종료 인덱스 전 까지 문자열의 부분 문자열을 반환합니다.
str.substring(indexStart[, indexEnd])

 

substring()은 시작인덱스랑 끝인덱스를 매개변수로 받네요

i*n으로 시작위치를 변하게해주고 끝인덱스는 counter에 n을 누적시켜줬는데 생각해보니까

function solution(my_str, n) {
    let answer = []
    for(i=0; i<my_str.length / n ; i++) {
        answer.push(my_str.substring(i*n,(i+1)*n))
    }
    return answer
}

 

이런식으로 하면 counter 변수가 필요가 없겠네요

 


 

 

다른사람의 풀이

function solution(my_str, n) {
  return my_str.match(new RegExp(`.{1,${n}}`, "g"));
}

match() 메서드는 문자열이 정규식과 매치되는 부분을 검색합니다/

RegExp 생성자는 패턴을 사용해 텍스트를 판별할 때 사용합니다.

정규표현식을 사용한 풀이법입니다.

 

 

 

반응형