(하루 2–3시간 기준: 이론 15분 → 템플릿 익히기 15분 → 문제 2문제 90분 → 오답·리팩토링 15분)
1주차 — 자료구조 기초 (배열·문자열 / 스택·큐·덱 / 해시)
배열·문자열
- 공부 방법
- 슬라이싱/인덱싱/enumerate/join/split로 기본기 다지기
- *한 번의 선형 스캔(O(n))**으로 해결하는 연습(카운팅, 구간 합)
- 핵심 포인트
- 불변 문자열 → 잦은 덧붙임은 리스트에 append 후 ''.join이 더 빠름
- 인덱스 경계(0, n-1), 공백·개행 처리, 유니코드(소문자화 lower)
- 파이썬 꿀팁
s = ''.join(parts) # 문자열 누적
cnt = [0]*26; cnt[ord(c)-97]+=1 # 알파벳 카운팅
- 자주 틀리는 부분: rstrip('\n') 미처리로 오답, list.pop(0) 사용(TLE)
스택 (괄호, 후위표기, 단조스택)*
- 공부 방법: “조건을 만족할 때까지 pop” 패턴 익히기 → 괄호검사 → 단조스택(다음 큰 원소)
- 핵심 포인트: 스택에는 “인덱스나 값” 중 무엇을 넣을지 먼저 결정
- 템플릿
st = []
for i, x in enumerate(arr):
while st and st[-1] > x: # 조건 반대로면 >= 로 조정
st.pop()
st.append(x)
- 실수 포인트: 빈 스택 접근, 조건 부등호 방향
큐·덱 (시뮬레이션, 회전, BFS의 기반)
- 핵심 포인트: deque만이 O(1) 양끝 연산
- 템플릿