알고리즘

직접 해 보면서 배웁니다

설명을 읽기 전에 먼저 해 봅니다. 그다음에 왜 그렇게 되는지 풀어 씁니다.

3편 공개 · 전체 36편 준비 중

기초 개념

  • 시간복잡도1억 번이면 1초, 그래서 어쩌라고
  • 재귀거울 앞에 거울을 두면
  • 완전탐색일단 다 해 보면 안 되나
  • 투 포인터양쪽에서 좁혀 오기
  • 슬라이딩 윈도우창문을 밀면서 보기
  • 누적합구간의 합을 한 번 빼기로

자료구조

  • 배열과 리스트왜 맨 앞에 끼우면 느릴까
  • 스택왜 Ctrl+Z 는 방금 한 것부터 되돌릴까
  • 큐와 덱줄을 서면 앞사람부터
  • 해시사물함을 번호 대신 이름으로 찾기
  • 힙(우선순위 큐)가장 급한 것부터 꺼내기

정렬

  • 버블 정렬옆 사람과 키 순서로 서 보기
  • 선택 정렬가장 작은 것부터 꺼내 놓기
  • 삽입 정렬카드를 한 장씩 끼워 넣기
  • 병합 정렬반으로 쪼갰다 붙이기
  • 퀵 정렬기준 하나로 좌우를 가르기
  • Python sort 와 key실전에서는 이 한 줄이면 된다

탐색

그래프 탐색

최단경로·MST

  • 다익스트라길마다 걸리는 시간이 다르면

DP

  • 메모이제이션같은 걸 두 번 세지 않기
  • 1차원 DP계단을 오르는 경우의 수
  • 0/1 배낭가방에 무엇을 담을까

그리디

  • 거스름돈큰 동전부터 주면 되나
  • 회의실 배정끝나는 시간이 빠른 것부터

백트래킹·구현

  • 순열과 조합 만들기가능한 경우를 빠짐없이
  • N-퀸서로 못 보게 놓기
  • 시뮬레이션시키는 대로 그대로 하기

문자열

  • 문자열과 회문뒤집어도 같은 말

수학

  • 최대공약수유클리드가 2300년 전에 푼 문제
  • 에라토스테네스의 체소수를 체로 거르기