본문 바로가기

자료구조

리스트

 

Q1. 자바가 제공하는 대표적인 리스트는 무엇인가?

- ArrayList, Vector, LinkedList 이다. 

 

 

Q2. Vector와 ArrayList는 어떤 리스트인가?

- 배열 기반의 리스트이다.  

 

 

Q3. LinkedList는 어떤 리스트인가?

- 배열 기반이 아닌 연결 리스트이다. 

 

 

Q4. Vector의 가장 큰 특징은 무엇인가?

- Thread Safe하다는 것이다. 

 

 

Q5. ArrayList는 무엇을 기반으로 접근하는가?

- index를 기반으로 접근한다. 

 

 

Q6. ArrayList에서 특정한 인덱스 위치에 추가하는데 걸리는 시간 복잡도는 무엇인가?

- O(N)이다. 

 

 

Q7. ArrayList의 조회의 시간 복잡도는 무엇인가?

- O(1)이다. 

 

 

Q8. ArrayList의 contains() 메소드의 시간 복잡도는 무엇인가?

- O(N)이다. 

 

 

Q9. LinkedList는 무엇으로 구현되어 있는가?

 

 

Q10. LinkedList에는 실질적으로 '무엇'이 없는가?

 

 

Q11. LinkedList의 조회의 시간 복잡도는 무엇인가?

- O(N)이다.

 

Q11-1 왜 LinkedList의 조회의 시간 복잡도는 O(N)인가?

-> 조회를 위해서는 LinkedList의 헤드부터 해당 노드까지 이동해야 하기 때문이다. 

 

 

Q12. LinkedList의 추가, 삭제의 시간 복잡도는 무엇인가?

- O(1)이다. 

 

 

Q13. LinkedList의 삭제의 시간 복잡도는 '실질적으로'는 무엇인가?

- O(N)이다.

 

Q13-1 왜 그러한가?

- LinkedList에서 원소를 삭제하기 위해서는 우선 해당 원소를 탐색해야 하기 때문이다. 

 

 

Q14. List 인터페이스의 구현 클래스 중, 

         코딩테스트에서는 무엇을 많이 물어보는가?

- LinkedList를 많이 물어본다. 

 

Q14-1 왜 LinkedList를 많이 물어보는가?

 

 

참고

Q1~Q14 더 개발자, 인터뷰 가이드 6/18 

A1~A8 6/20

 

'자료구조' 카테고리의 다른 글

해시 테이블  (0) 2022.06.29
자료구조(1)  (0) 2022.06.20
String, StringBuilder, StringBuffer API(Mission 2)  (0) 2022.06.15
배열과 리스트(Mission 1)  (0) 2022.06.15
병합 정렬(merge sort)  (0) 2022.06.07