문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ my_str의 길이 ≤ 100
- 1 ≤ n ≤ my_str의 길이
- my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
입출력 예my_strnresult
"abc1Addfggg4556b" | 6 | ["abc1Ad", "dfggg4", "556b"] |
"abcdef123" | 3 | ["abc", "def", "123"] |
입출력 예 설명
입출력 예 #1
- "abc1Addfggg4556b" 를 길이 6씩 잘라 배열에 저장한 ["abc1Ad", "dfggg4", "556b"]를 return해야 합니다.
입출력 예 #2
- "abcdef123" 를 길이 3씩 잘라 배열에 저장한 ["abc", "def", "123"]를 return해야 합니다.
유의사항
- 입출력 예 #1의 경우 "abc1Addfggg4556b"를 길이 6씩 자르면 "abc1Ad", "dfggg4" 두개와 마지막 "556b"가 남습니다. 이런 경우 남은 문자열을 그대로 배열에 저장합니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
function solution(my_str, n) {
let no_cut_arr = [...my_str]
let cutIndex = no_cut_arr.length / n
let cut_arr = [];
for(let i = 1; i <= n; i++ ){
if(cutIndex * i > no_cut_arr.length -1 ){
}
let arr3 = no_cut_arr.splice(0,(cutIndex * i))
let arr4 = no_cut_arr
console.log(arr3)
console.log(arr4)
}
}
|
cs |
처음에 splice 와 반복문으로 풀어보려 햇으나 너무 복잡해서 중간에 pass
파이썬의 longspace()같은 함수 있나 찾아보다 없다는 것을 깨달았는데 다들 반복문을 통해 배열을 일정 길이로 쪼개고 있었음. (arr 과 cutIndex는 필요없는 변수다.)
unction solution(my_str, n) {
let arr = [...my_str]
let cutIndex = arr.length / n
let arr2 = [];
for(let i=0; i<arr.length; i += n){
let tempArr = '';
tempArr = arr.slice(i, i + n)
arr2.push(tempArr.join(""))
}
return arr2
}
i, i+n 을 출력한 모습.
입력값 〉 | "abc1Addfggg4556b", 6 |
기댓값 〉 | ["abc1Ad", "dfggg4", "556b"] |
실행 결과 〉 | 테스트를 통과하였습니다. |
출력 〉 | 0 6 6 12 12 18 |
테스트 2 | |
입력값 〉 | "abcdef123", 3 |
기댓값 〉 | ["abc", "def", "123"] |
실행 결과 〉 | 테스트를 통과하였습니다. |
출력 〉 | 0 3 3 6 6 9 |
'🗃️javascript > 프로그래머스' 카테고리의 다른 글
직사각형 별찍기(Lv.1)[`${}`은 "",''과 다르게 {}안에서 함수사용 가능] (0) | 2023.03.22 |
---|---|
행렬의 덧셈(Lv.1)[2차원 배열(행렬)에 대한 이해] (0) | 2023.03.18 |
최댓값과 최솟값(Lv.2)[sort((a,b) => a-b ) 오름차순 정렬] (0) | 2023.03.18 |
영어가 싫어요(Lv.0)[replace(제거할 문자열, 대체 문자열) + 객체사용] (0) | 2023.03.16 |
부족한 금액 계산하기(Lv.1)[배열생성 new Array(갯수).fill(0)] (0) | 2023.03.16 |