본문 바로가기

Programming/데일리 알고리즘

(210409:BTB) Lesson 2. CyclicRotation

 

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 > 데일리 알고리즘' 카테고리의 다른 글