커리큘럼/페이즈 1 · 기본기
6주차체크포인트

체크포인트 1

1~5주 복습. 유형을 감추고 섞어 내서 도구를 고르는 힘을 길러요.

개념

지금까지 다섯 개의 도구를 배웠어요. 문제를 푸는 능력과 어떤 도구를 꺼낼지 고르는 능력은 달라요. 후자는 유형을 알려주지 않고 풀어봐야만 늘어요. 이번 주 문제들은 유형을 밝히지 않아요.

도구 선택 체크리스트

문제를 읽고 나서 이 순서로 자문해 봐요. 대부분 세 번째 줄 안에서 답이 나와요.
문제에 이런 말이 있으면먼저 떠올릴 도구주차
'중복', '이미 있는지', '몇 번 등장'해시 맵 / 셋5주차
'구간 합을 여러 번 묻는다'누적합2주차
'구간에 값을 여러 번 더한다'차분 배열2주차
'n ≤ 20', '가능한 모든 경우'완전탐색 / 비트마스크4주차
'규칙대로 움직인다', 'K초 후'시뮬레이션4주차
'격자', '지도', '행과 열'2차원 배열 + 델타2 · 4주차
'뒤집기', '팰린드롬', '글자 수'문자열 + 빈도 배열3주차

시간 배분 연습

이번 주부터는 타이머를 걸고 풀어요. 4문제에 90분을 권해요. 실제 시험에서 제일 흔한 실패는 한 문제에 매달리다 나머지를 못 보는 거예요.
  1. 처음 5분은 모든 문제를 훑어 읽고 난이도를 매겨요
  2. 쉬워 보이는 것부터 풀어요. 순서대로 풀 이유가 없어요
  3. 한 문제에서 20분이 지나면 일단 넘어가요. 돌아왔을 때 보이는 경우가 많아요
  4. 제한 조건에서 복잡도를 먼저 역산하고 코드를 써요 (1주차 표)

셀프 체크

다음 주로 넘어가기 전에 소리 내어 답해 보세요. 막히면 그 부분이 아직 덜 익은 개념이에요.
  1. 1~5주 중 다시 풀었을 때 가장 막혔던 주차는 어디인가?
  2. 네 문제 각각에서 어떤 도구를 왜 골랐는지 한 문장으로 말할 수 있는가?
  3. 시간 안에 못 푼 문제가 있다면, 아이디어가 없어서인가 구현이 느려서인가?