공부/Algorithm

시간복잡도

완이버스 2024. 1. 14. 23:53

 시간 복잡도

- 작성한 코드가 동작 시간이 대략 얼마나 걸릴지 예상
- 표기법 Captial O를 사용 ( Big-O )
- Worst case의 경우로 표기
- Big O Notation에서 상수는 버린다
ex) O(3N^2) = O(3N^2)
- 두 가지 항이 있을때, 변수가 같으면 큰 것만 빼고 다 버린다
ex) O(N^2 + N) = O(N^2)
-단, 두가지 항이 있을시에 변수가 다르면 삭제하지 않는다
ex) O(N^2 + M)


C++ 입출력

입출력 코드인 scanf/printf, cin/cout를 사용하는데 보통 cin/cout는 scanf/printf에 비해 느린 편

ios_base::sync_with_stdio(false);
cin.tie(nullptr);
cout.tie(nullptr);

다음과 같은 코드를 통해 scanf/printf와 같은 속도를 낼 수 있다.