단어가 공백 한 개 이상으로 구분되어 있는 문자열 my_string이 매개변수로 주어질 때, my_string에 나온 단어를 앞에서부터 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
function solution(my_string) {
return my_string.split(' ').filter((el) => Boolean(el));
}
NULL
아무 원소도 들어있지 않은 빈 배열 X가 있습니다. 양의 정수 배열 arr가 매개변수로 주어질 때, arr의 앞에서부터 차례대로 원소를 보면서 원소가 a라면 X의 맨 뒤에 a를 a번 추가하는 일을 반복한 뒤의 배열 X를 return 하는 solution 함수를 작성해 주세요.
function solution(arr) {
const sum = arr.reduce((a,b) => a+b);
let X = new Array(sum);
let startFillingIndex = 0;
arr.forEach((el) => {
X.fill(el,startFillingIndex);
startFillingIndex += el;
});
return X
}
사실 해당 문제를 풀 때 고민을 많이 했었다.
여러가지 방법이 머릿속에 생각났지만 (for문 이용하기, repeat 이용하기 등) 다른 방식으로 접근하고 싶었고 그래서 택한게 new Array()로 저장량을 먼저 정해놓고 그 안을 fill method를 사용해 채우는 것이다.
결과적으로는 성공적!!
새로운 시도는 문제를 푸는데 걸리는 시간을 더 걸리게 할 지언정 내게 재미를 안겨준다.
정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
function solution(num_list, n) {
return num_list.slice(n).concat(num_list.slice(0, n));
}
NULL
정수로 이루어진 문자열 n_str이 주어질 때, n_str의 가장 왼쪽에 처음으로 등장하는 0들을 뗀 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(n_str) {
while (n_str.startsWith('0')){
n_str = n_str.substring(1)
}
return n_str
}
//다른 풀이
const solution = (str) => String(Number(str))
다른 분의 코드를 보게 되었는데 발상의 전환이 돋보였다...
숫자로 변경하면 바로 0이 제거된다는 사실을..생각도 못했다.
문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
function solution(myString) {
return myString.split('x').map((el) => el.length);
}
NULL
문자열들이 담긴 리스트가 주어졌을 때, 모든 문자열들을 순서대로 합친 문자열을 꼬리 문자열이라고 합니다. 꼬리 문자열을 만들 때 특정 문자열을 포함한 문자열은 제외시키려고 합니다. 예를 들어 문자열 리스트 ["abc", "def", "ghi"]가 있고 문자열 "ef"를 포함한 문자열은 제외하고 꼬리 문자열을 만들면 "abcghi"가 됩니다.
문자열 리스트 str_list와 제외하려는 문자열 ex가 주어질 때, str_list에서 ex를 포함한 문자열을 제외하고 만든 꼬리 문자열을 return하도록 solution 함수를 완성해주세요.
function solution(str_list, ex) {
let result = "";
str_list.forEach((el) => {
if(!el.includes(ex)){
result += el;
}
})
return result;
}
NULL
오늘 해야 할 일이 담긴 문자열 배열 todo_list와 각각의 일을 지금 마쳤는지를 나타내는 boolean 배열 finished가 매개변수로 주어질 때, todo_list에서 아직 마치지 못한 일들을 순서대로 담은 문자열 배열을 return 하는 solution 함수를 작성해 주세요.
function solution(todo_list, finished) {
const unfinishedBusinessList = [];
todo_list.forEach((el, i) => {
if (!finished[i]) {
unfinishedBusinessList.push(el)
}
})
return unfinishedBusinessList;
}
NULL
정수 배열 arr과 delete_list가 있습니다. arr의 원소 중 delete_list의 원소를 모두 삭제하고 남은 원소들은 기존의 arr에 있던 순서를 유지한 배열을 return 하는 solution 함수를 작성해 주세요.
function solution(arr, delete_list) {
return arr.filter((el) => !delete_list.includes(el));
}
NULL
길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.
function solution(my_strings, parts) {
let combinedWords = "";
my_strings.forEach((el, i) => {
combinedWords += el.slice(parts[i][0],parts[i][1]+1);
})
return combinedWords;
}
항상 헷갈리는..slice의 포함 범위..그냥 수학에서 range from A to B에서 괄호의 역할을 생각해보면 될 것 같은데.
문자열 배열 strArr가 주어집니다. 배열 내의 문자열 중 "ad"라는 부분 문자열을 포함하고 있는 모든 문자열을 제거하고 남은 문자열을 순서를 유지하여 배열로 return 하는 solution 함수를 완성해 주세요.
function solution(strArr) {
return strArr.filter((el) => !el.includes('ad'))
}
NULL
무난하게 마무리
하루 빨리 0레벨을 끝내고 1레벨 그리고 2레벨에 올라가서 3레벨과 4레벨을 도전하고 싶다.
4월부터는 LeetCode Daily Challenge도 시작해야 하니 할게 많다.