https://school.programmers.co.kr/learn/courses/30/lessons/181915
function solution(my_string, index_list) {
let answer = "";
index_list.forEach((v)=>{
answer += my_string[v];
})
return answer;
}
index_list
를 순회하며 my_string[idx]
를 찾아 문자열을 만들었다. map
을 이용해 my_string[idx]
로 이루어진 배열을 만들고 join
하는 방법도 있었다.
index_list.map((v)=>my_string[v]).join("")
reduce
를 사용하는 방법도 있었다.index_list.reduce((acc, cur)=>acc + my_string[cur],"")
https://school.programmers.co.kr/learn/courses/30/lessons/181914
function solution(number) {
return [...number].reduce((acc, cur)=>acc + +cur,0) % 9;
}
문자열 number
의 수를 모두 더한 후 9
로 나눈 나머지
를 반환하는 문제였다. 그래서 그렇게 했다.
https://school.programmers.co.kr/learn/courses/30/lessons/181913
function solution(my_string, queries) {
let answer = [...my_string];
for (const [s, e] of queries) {
const tmp = answer.slice(s, e+1).reverse();
answer.splice(s, e - s + 1, tmp);
answer = answer.flat();
}
return answer.join("");
}
my_string
의 인덱스 s
부터 e
까지 슬라이싱한 부분을 뒤집었다. splice
를 이용하여 범위 안의 요소를 제거 후 뒤집은 배열을 추가했다. 2차원 배열이 되기 때문에 flat
으로 평탄화했다.
https://school.programmers.co.kr/learn/courses/30/lessons/181912
function solution(intStrs, k, s, l) {
return intStrs.reduce((acc, cur)=>{
const tmp = +([...cur].slice(s, s + l).join(""));
if (tmp > k) return [...acc, tmp]
return acc
}, []);
}
필요한 cur
의 길이는 s
부터 시작해 l
의 길이이므로, slice(s, s + l)
하여 문자열➡️숫자로 바꾸었다. 그 값이 k
보다 크면 acc
에 추가하고, 아니라면 acc
를 반환한다.
https://school.programmers.co.kr/learn/courses/30/lessons/181911
function solution(my_strings, parts) {
return parts.map(([s,e], i)=> my_strings[i].slice(s, e+1)).join("");
}
문자열을 슬라이싱하여 새 배열을 만들고 join
했다. [문자열 여러 번 뒤집기]처럼 reverse
가 필요 없어 my_strings[i]
를 배열로 만들지 않았다.
https://school.programmers.co.kr/learn/courses/30/lessons/181910
function solution(my_string, n) {
return my_string.slice(-n);
}
뒤에서부터 n
개의 문자열을 반환하기 위해 slice
에 -n
을 넣었다. 음수를 인자로 주면 뒤에서부터 n
개의 요소를 슬라이싱한다.
https://school.programmers.co.kr/learn/courses/30/lessons/181909
function solution(my_string) {
return Array.from(my_string, (_, i)=>my_string.slice(-(i+1))).sort();
}
Array.from
은 첫 인자를 배열로 만들며, 두 번째 인자로 map
과 같은 함수를 콜백으로 받는다. 뒤에서부터 인덱스를 키워가며 자른 문자열로 새 배열을 만들었다.
sort
는 유니코드로 정렬한 값을 detault
로 반환한다. 이미 사전순이므로 따로 콜백을 넣지 않았다.