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] ```
A. `addFirst`
B. `addLast`
C. `push`
D. 1번과 3번 모두 가능

정답: 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 과목의 모든 문제를 순차적으로 풀어보세요. 진행상황이 자동으로 저장되어 언제든지 이어서 학습할 수 있습니다.