중복된 요소가 존재하지 않도록 배열의 형태를 정리하는 문제.
자료구조의 스택과 큐를 이용하여 답을 도출하고, 시간초과가 나지 않도록 주의해야 한다.
function solution(arr) {
var answer = [];
for(let i = 0; i < arr.length; i++){
if(arr[i] === arr[i+1]){
// 원소가 같으면 shift()로 동일요소 삭제
arr.shift()
i -= 1
}else {
answer.push(arr[i])
}
}
return answer;
}
문제는 해결했지만, 시간초과 때문에 정답은 될 수 없는 코드이다.
log(n)의 시간복잡도를 가지는 for loop에서 조건문의 실행문에 인덱스 순서를 초기화해주는 것이 문제가 되지 않았을까 싶다.
for문을 이용하면 데이터의 크기와 실행시간이 정비례하는 데다가 그 안에서 다시한번 인덱스 순서를 임의로 세팅하니, 효율적인 방법은 되지 않나보다.
재도전 해봐야겠다..!