문제 설명
문자열 my_str과 n이 매개변수로 주어질 때,
my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
1 ≤ my_str의 길이 ≤ 100
1 ≤ n ≤ my_str의 길이
my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
풀이
const solution = (my_str, n) => {
let count = 0;
let result = [];
while(true){
if(my_str.slice(count * n, (count * n)+n).length === 0) break;
result.push(my_str.slice(count * n, (count * n)+n));
if(my_str.slice(count * n, (count * n)+n).length < n) break;
count ++;
}
return result;
}
while 문에서 사용할 count와, 결과를 저장할 배열 result 를 각각 선언 해준 뒤,
while 문으로 my_str을 count * n 부터 (count * n) + n 까지 잘라서 result에 저장해줄건데,
저장 하기 전에 my_str을 count * n 부터 (count * n) + n 까지 자른 배열의 길이가 0일 경우 break 해준다.
(마지막 순번에 공백이 나온 경우 result 배열에 추가하지 않고 반복문 종료.)
위 경우를 통과할 경우 잘라진 배열을 result에 push 해주고, count를 1증가시킨다.
반복문이 종료되면 result를 리턴한다.
Ps.
function solution(my_str, n) {
var answer = [];
for(let i=0; i < my_str.length; i+=n) {
answer.push(my_str.substr(i, n));
}
return answer;
}
다른분의 풀이인데 slice 말고 문자열 자체를 자르는 substr 매서드도 있는걸 알게됐다.
굳이 내가 풀었던것 처럼 요란법석 안해도 되서 좋은듯.