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 생성자는 패턴을 사용해 텍스트를 판별할 때 사용합니다.
정규표현식을 사용한 풀이법입니다.
반응형