다음 배열 내장함수의 시간 복잡도가 O(1)이 아닌 것을 모두 고르시오.
1) arr[i]
2) arr.push(5)
3) arr.slice()
4) arr.pop()
5) arr.includes(5)
3번, 5번
arr.slice()
의 경우 배열을 복사합니다. 복사하기 위해서는 빈 값을 만들고 만들고 원래 값을 돌면서 push
작업을 해줘야하기 때문에 한단계에 속하는 O(1)이 아닙니다.
또한 arr.includes()
의 경우 처음 값부터 하나씩 찾으며 해당하는 값이 있는지를 확인해야하기 때문에 O(n)에 속합니다.