문제를 읽고 이해
문제를 익숙한 용어로 재정의한다
어떻게 해결할지 계획을 세운다
계획을 검증한다
프로그램으로 구현한다.
공간적 효율성과 시간적 효율성
시간 복잡도 분석
복잡도의 점근적 표기
O(Big-Oh) 표기
Ω(Big-Omega) 표기
Θ(Big-Theta) 표기
자주 사용하는 O-표기
| O표기 | Time |
|---|---|
| O(1) | 상수시간 (Constant time |
| O(logn) | 로그 시간 (Logarithmic time) |
| O(n) | 선형시간 (Linear time) |
| O(nlogn) | 로그 선형 시간 (Log-linear time) |
| O(n^2) | 제곱 시간 (Quadratic time) |
| O(n^3) | 세제곱 시간 (Cubic time) |
| O(2^2) | 지수 시간 (Exponetial time) |
| 연산자 | 연산자의 기능 |
|---|---|
| & | 비트 단위로 And 연산을 한다. Ex) num1&num2 |
| \ | 비트 단위로 OR 연산을 한다. Ex) num1\num2 |
| ^ | 비트 단위로 XOR 연산을 한다. Ex) num1^num2 |
| ~ | 단항연산자로서 피연산자의 모든 비트를 반전시킨다. Ex) ~num |
| << | 피연산자의 비트 열을 왼쪽으로 이동시킨다. Ex) num <<2 |
| >> | 피연산자의 비트열을 오른쪽으로 이동시킨다. Ex) num >> 2 |