개념
지금까지 다섯 개의 도구를 배웠어요. 문제를 푸는 능력과 어떤 도구를 꺼낼지 고르는 능력은 달라요. 후자는 유형을 알려주지 않고 풀어봐야만 늘어요. 이번 주 문제들은 유형을 밝히지 않아요.
도구 선택 체크리스트
문제를 읽고 나서 이 순서로 자문해 봐요. 대부분 세 번째 줄 안에서 답이 나와요.| 문제에 이런 말이 있으면 | 먼저 떠올릴 도구 | 주차 |
|---|---|---|
| '중복', '이미 있는지', '몇 번 등장' | 해시 맵 / 셋 | 5주차 |
| '구간 합을 여러 번 묻는다' | 누적합 | 2주차 |
| '구간에 값을 여러 번 더한다' | 차분 배열 | 2주차 |
| 'n ≤ 20', '가능한 모든 경우' | 완전탐색 / 비트마스크 | 4주차 |
| '규칙대로 움직인다', 'K초 후' | 시뮬레이션 | 4주차 |
| '격자', '지도', '행과 열' | 2차원 배열 + 델타 | 2 · 4주차 |
| '뒤집기', '팰린드롬', '글자 수' | 문자열 + 빈도 배열 | 3주차 |
시간 배분 연습
이번 주부터는 타이머를 걸고 풀어요. 4문제에 90분을 권해요. 실제 시험에서 제일 흔한 실패는 한 문제에 매달리다 나머지를 못 보는 거예요.- 처음 5분은 모든 문제를 훑어 읽고 난이도를 매겨요
- 쉬워 보이는 것부터 풀어요. 순서대로 풀 이유가 없어요
- 한 문제에서 20분이 지나면 일단 넘어가요. 돌아왔을 때 보이는 경우가 많아요
- 제한 조건에서 복잡도를 먼저 역산하고 코드를 써요 (1주차 표)
모의고사
유형은 알려주지 않아요. 타이머를 걸고 풀어 보세요.셀프 체크
다음 주로 넘어가기 전에 소리 내어 답해 보세요. 막히면 그 부분이 아직 덜 익은 개념이에요.- 1~5주 중 다시 풀었을 때 가장 막혔던 주차는 어디인가?
- 네 문제 각각에서 어떤 도구를 왜 골랐는지 한 문장으로 말할 수 있는가?
- 시간 안에 못 푼 문제가 있다면, 아이디어가 없어서인가 구현이 느려서인가?