Ch.12 모의 면접 & 종합 전략
모의면접 1 — Easy 3문제 실전
Easy라고 쉽게 보면 안 됩니다
Easy 문제도 면접에서 시간 내에, 설명하면서 풀어야 합니다. 집에서 10분 걸리던 문제가 면접장에서는 25분이 걸릴 수 있습니다.
Easy를 완벽하게 풀면 Medium도 자신감이 생기지 않을까?
지금부터 실전 면접 시뮬레이션을 시작합니다. 각 문제를 4단계로 풀어봅시다.
핵심 개념
Two Sum
배열에서 합이 target인 두 수의 인덱스를 찾는 문제
HashMap 패턴
보수(complement)를 해시맵에 저장하여 O(n)에 해결
핵심 내용
면접 시작 — 첫 번째 문제입니다. 45분 중 15분을 배분하세요
Two Sum 정수 배열 `nums`와 정수 `target`이 주어집니다. 합이 `target`인 두 수의 인덱스를 반환하세요. 예시: nums = [2, 7, 11, 15], target = 9 → [0, 1]
1단계: 이해 — 같은 원소를 두 번 사용할 수 있나요? → 아니요, 서로 다른 인덱스여야 합니다
2단계: 설계 — 브루트포스 O(n²) → HashMap O(n)으로 최적화
3단계: 구현 — HashMap으로 보수를 추적합니다
def two_sum(nums, target):
# 숫자→인덱스 매핑
seen = {}
for i, num in enumerate(nums):
complement = target - num
# 보수가 이미 등장했으면 정답
if complement in seen:
return [seen[complement], i]
# 현재 숫자 기록
seen[num] = i
return [] # 답이 없는 경우4단계: 검증 — 시간 O(n), 공간 O(n). 엣지: 빈 배열 → [], 음수 포함 → 정상 동작
두 번째 문제입니다. 스택 패턴을 활용합니다
Valid Parentheses '(', ')', '{', '}', '[', ']' 로만 이루어진 문자열이 주어집니다. 괄호가 올바르게 닫혀있는지 판별하세요. 예시: "()[]{}" → True, "(]" → False
def is_valid(s):
stack = []
pairs = {')': '(', '}': '{', ']': '['}
for char in s:
if char in pairs: # 닫는 괄호
if not stack or stack[-1] != pairs[char]:
return False
stack.pop()
else: # 여는 괄호
stack.append(char)
return len(stack) == 0 # 스택이 비어야 완전키워드 '괄호 짝 맞추기' → 즉시 스택 떠올리기!
시간 O(n), 공간 O(n). 엣지: 빈 문자열 → True, 여는 괄호만 → False
세 번째 문제입니다. 연결 리스트 기본을 확인합니다
Merge Two Sorted Lists 정렬된 두 연결 리스트를 하나의 정렬된 리스트로 병합하세요. 예시: [1→2→4] + [1→3→4] → [1→1→2→3→4→4]
class ListNode:
def __init__(self, val=0, next=None):
self.val = val
self.next = next
def merge_two_lists(l1, l2):
dummy = ListNode(0) # 더미 헤드
curr = dummy
while l1 and l2:
if l1.val <= l2.val:
curr.next = l1
l1 = l1.next
else:
curr.next = l2
l2 = l2.next
curr = curr.next
# 남은 노드 연결
curr.next = l1 if l1 else l2
return dummy.next더미 헤드 기법은 연결 리스트 문제의 필수 테크닉입니다
시간 O(n+m), 공간 O(1). 엣지: 한쪽이 비어있으면 → 다른 쪽 그대로 반환
Two Sum에서 HashMap을 쓰면 시간 복잡도는?
Valid Parentheses 문제에서 가장 적합한 자료구조는?
Easy 3문제 클리어!
정리 노트
모의면접 1 — Easy 실전
문제별 핵심
- Two Sum
- HashMap으로 보수 추적 — O(n)
- Valid Parentheses
- 스택으로 괄호 짝 맞추기 — O(n)
- Merge Two Lists
- 더미 헤드 + 투 포인터 — O(n+m)
면접 팁
- 더미 헤드
- 연결 리스트 병합의 필수 테크닉
- 엣지 케이스
- 빈 입력, 단일 원소, 동일 값 항상 확인
Easy 3문제를 15분 안에 설명+구현할 수 있으면 면접 기본기 완성!
핵심 정리
- 1Two Sum — HashMap 패턴
- 2Valid Parentheses — 스택 패턴
- 3Merge Two Sorted Lists — 더미 헤드 패턴
- 4모든 문제에 4단계 프레임워크 적용
퀴즈와 인터랙션으로 더 깊이 학습하세요
play_circle인터랙티브 레슨 시작