function solution(A, K) {
// write your code in JavaScript (Node.js 8.9.4)
if ( A.length < K ) {
K = K%A.length;
}
let newA = A.slice();
let result = [].concat(A.splice(A.length-K, K), newA.splice(0, newA.length-K));
return result;
}
<되짚어보기>
1. Array.prototype.unshift()
- 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다.
2. Array.prototype.shift()
- 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다.
3. Array.prototype.pop()
- 배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.
4. Array.prototype.push()
- 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다
5. Array.prototype.slice()
- 구문
array.splice(start[, deleteCount[, item1[, item2[, ...]]]])
- start가 양수이고 array.length보다 큰 경우 : 배열의 길이
- start가 음수이고 array.length보다 작은 경우 : 0
- deleteCount
6. Array.prototype.splice()
<문제풀이>
1. Task Score 1번째 코드. 조금 아쉽다. 굳이 A.length=K일 경우, loop를 돌지 않아도 되는데?, 예외 조건에 대해서도 잘 생각해보자. 배열의 길이가 0이라던가..

2. 두번째 작성한 코드.

3. 세번째 작성한 코드

<느낀 점>
1. 마음만 급해서 예외 케이스를 생각해보는 시간을 멀리하지 말자.
'Programming > 데일리 알고리즘' 카테고리의 다른 글
(210417:BTB) Lesson 3. FrogJump (0) | 2021.04.17 |
---|---|
(210417:BTB) Lesson 2. OddOccurrencesInArray (0) | 2021.04.17 |
(210409:BTB) Lesson 1. BinaryGap (0) | 2021.04.09 |
190725_덩치(7568)_C (0) | 2019.07.25 |
190719_소수구하기_C (0) | 2019.07.19 |