1. n 번째 원소부터
[문제 설명]
정수 리스트 num_list와 정수 n이 주어질 때, n 번째 원소부터 마지막 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
[답변]
function solution(num_list, n) {
return num_list.slice(n - 1);
}
💡 이제 slice()
랑 친해졌다. 😎
2. 순서 바꾸기
[문제 설명]
정수 리스트 num_list와 정수 n이 주어질 때, num_list를 n 번째 원소 이후의 원소들과 n 번째까지의 원소들로 나눠 n 번째 원소 이후의 원소들을 n 번째까지의 원소들 앞에 붙인 리스트를 return하도록 solution 함수를 완성해주세요.
[답변]
function solution(num_list, n) {
let nBefore = num_list.slice(0, n);
let nAfter = num_list.slice(n);
return [...nAfter, ...nBefore];
}
function solution(num_list, n) {
return [...num_list.slice(n), ...num_list.slice(0, n)];
}
💡 변수로 빼느냐 마느냐 그것이 문제로다. slice()
하여 전개연산자로 순서를 바꾼 배열을 붙여 해결
[다른 답변]
function solution(num_list, n) {
num_list.unshift(...num_list.splice(n));
return num_list;
}
📌 unshift()
: 배열의 맨 앞에 하나 이상의 요소를 추가하는 역할. 첫번째 인덱스로 삽입된다. 기존 배열을 변경함
3. 왼쪽 오른쪽
[문제 설명]
문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return하도록 solution 함수를 완성해주세요. "l"이나 "r"이 없다면 빈 리스트를 return합니다.
[답변]
function solution(str_list) {
for(let i = 0; i < str_list.length; i++) {
if(str_list[i] === "l") return str_list.slice(0, i);
else if(str_list[i] === "r") return str_list.slice(i + 1);
}
return [] ;
}
💡 처음엔 indexOf()
를 사용해서 풀어보려 하였으나, "r"이나 "l"이 없으면 -1로 출력되어 인덱스 위치 비교가 쉽지 않았고, 테스트케이스 두 개가 틀렸다. 그래서 다시 for문으로 하나씩 순회하는 방식으로 변경해서 풀어보았다. 먼저 마주치는 문자대로 return되므로 해결!
13점이라니~!!! 어렵지 않았는데 점수 많이 받으면 기분 좋아 😎
4. n 번째 원소까지
[문제 설명]
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n 번째 원소까지의 모든 원소를 담은 리스트를 return하도록 solution 함수를 완성해주세요.
[답변]
function solution(num_list, n) {
return num_list.slice(0, n);
}
💡 이 문제도 slice()
5. n개 간격의 원소들
[문제 설명]
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장되어있는 원소들을 차례로 담은 리스트를 return하도록 solution 함수를 완성해주세요.
[답변]
function solution(num_list, n) {
return num_list.filter((_, i) => !(i % n));
}
💡 어제 풀었던 문제랑 거의 동일한 문제! for 문 증감식을 설정하여 푸는 방법도 가능하지만 filter()
를 활용해 풀어보았다.
i % n의 나머지가 0인 것들만 출력되게 하는 방식이다.
0레벨이지만 너무나 재밌는 코딩테스트 13일차 끝 😎
'프로그래머스 > Lv. 0 코딩 기초 트레이닝' 카테고리의 다른 글
[프로그래머스] 코딩 기초 트레이닝 Day 15 / JS (0) | 2023.08.03 |
---|---|
[프로그래머스] 코딩 기초 트레이닝 Day 14 / JS (0) | 2023.08.02 |
[프로그래머스] 코딩 기초 트레이닝 Day 12 / JS (0) | 2023.07.31 |
[프로그래머스] 코딩 기초 트레이닝 Day 11 / JS (0) | 2023.07.30 |
[프로그래머스] 코딩 기초 트레이닝 Day 10 / JS (0) | 2023.07.29 |