Java - 문제 미리보기
문제 2446
easy
LinkedList에서 맨 앞에 요소를 추가하려고 합니다. 빈칸에 들어갈 올바른 메서드는?
```java
LinkedList list = new LinkedList<>();
list.add("B");
list.add("C");
list._______(0, "A"); // 또는 list._______("A");
System.out.println(list); // [A, B, C]
```
정답: D
LinkedList에서 맨 앞에 요소를 추가하는 방법은 여러 가지가 있습니다:
방법 1: `addFirst("A")`
⦁ LinkedList의 고유 메서드
⦁ 맨 앞에 요소를 추가합니다
방법 2: `push("A")`
⦁ 스택 인터페이스의 메서드
⦁ `addFirst()`와 동일한 동작을 합니다
방법 3: `add(0, "A")`
⦁ 인덱스 0에 요소를 삽입
⦁ 기존 요소들은 뒤로 밀립니다
LinkedList의 장점:
⦁ 앞쪽/뒤쪽 삽입이 O(1) 시간 복잡도로 매우 효율적입니다
⦁ ArrayList보다 앞쪽 삽입에서 성능이 우수합니다
O(1) 시간 복잡도란?
⦁ 상수 시간: 데이터 크기와 상관없이 항상 일정한 시간이 걸리는 연산
⦁ LinkedList가 100개든 100만개든 맨 앞 삽입 시간은 동일합니다
⦁ 이유: LinkedList는 첫 번째 노드(head)를 직접 참조하고 있어서, 새 노드를 head 앞에 연결하고 head만 바꾸면 끝이기 때문입니다
ArrayList와의 성능 비교:
⦁ LinkedList: `addFirst()` → O(1) (즉시 완료)
⦁ ArrayList: `add(0, item)` → O(n) (모든 기존 요소들을 한 칸씩 뒤로 밀어야 함)
💡 학습 팁
이 문제를 포함한 Java 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.