JavaScript | TypeScript/Javascript 코딩테스트
[ Javascript ] 코딩테스트 연습 ( 잘라서 배열로 저장하기 )
shiro21
2023. 1. 11. 20:20
반응형
잘라서 배열로 저장하기
문제 설명
문자열 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번방법
function solution(my_str, n) {
var answer = [];
let arr = my_str.split("");
let count = n;
for (let i = 0; i < arr.length; i += n) {
answer.push(arr.slice(i, count).join(""));
count = count + count;
}
return answer;
}
console.log(solution("abc1Addfggg4556b", 6)); // ['abc1Ad', 'dfggg4', '556b']
console.log(solution("abcdef123", 3)); // ['abc', 'def', '123']
37.5%...
2번 방법
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;
}
console.log(solution("abc1Addfggg4556b", 6)); // ['abc1Ad', 'dfggg4', '556b']
console.log(solution("abcdef123", 3)); // ['abc', 'def', '123']
62.5%...
substr() 메서드로 i번째부터 n번째까지 넣어주는 방법
4번으로 성공한 이후에 2번과 같은 방법으로 푼 사람이 있길래 다시 해보니까 성공했습니다.. 뭐지 ?...
3번 방법
function solution(my_str, n) {
var answer = [];
let arr = my_str.split("");
for (let i = 0; i < arr.length; i++) {
answer.push(arr.splice(0, n).join(""))
}
return answer;
}
console.log(solution("abc1Addfggg4556b", 6)); // ['abc1Ad', 'dfggg4', '556b']
console.log(solution("abcdef123", 3)); // ['abc', 'def', '123']
62.5%...뭐지..
splice() 메서드로 arr를 잘라내서 for문 돌리기입니다.
4번 방법
function solution(my_str, n) {
var answer = [];
let arr = my_str.split("");
while(arr.length > 0) {
console.log(arr.length);
answer.push(arr.splice(0, n).join(""));
}
return answer;
}
console.log(solution("abc1Addfggg4556b", 6)); // ['abc1Ad', 'dfggg4', '556b']
console.log(solution("abcdef123", 3)); // ['abc', 'def', '123']
while문으로 돌리니까 성공했습니다. 이유가 뭔지..더 빨라서 그런가..
5번 방법
function solution(my_str, n) {
var answer = [];
let arr = my_str.split("");
for(const ele of arr) {
answer.push(arr.splice(0, n).join(""));
}
return answer;
}
console.log(solution("abc1Addfggg4556b", 6)); // ['abc1Ad', 'dfggg4', '556b']
console.log(solution("abcdef123", 3)); // ['abc', 'def', '123']
for...of로도 돌려봤지만 실패가 뜹니다..
반응형