Algorithm 5

C++ 시간 단축 구문

ios::sync_with_stdio(false); cin.tie(0); cout.tie(0); 위의 3가지 구문을 사용하여 시간 단축 멀티스레드 환경이나 화면 출력부분에서는 의도와 다르게 동작할 수 있기 때문에 실제 프로젝트나 시스템 구축 시에 잘 사용하지 않는다. 다만, 코딩테스트 환경은 싱글테스트 환경이 대부분이며 화면 출력을 고려하지 않기 때문에 속도 향상을 위해 이 구문을 사용한다. 1. ios::sync_with_stdio(false); C의 stdio와 C++의 iostream의 동기화 비활성호, C++독립 버퍼 사용으로 수행속도가 빨라지는 효과가 발생 2. cin.tie(0); cout.tie(0); 기본적으로 cin, cout은 하나로 묶였는데, 이는 한 스트림이 다른 스트림에서 각 IO..

Algorithm 2023.05.01

시간 복잡도

시간 복잡도 주어진 문제를 해결하기 위한 연산 횟수 보통 빅-오(O(n)) 표기법을 기준으로 수행 시간을 계산 → 항상 최악일 때(데이터의 크기가 가장 클 때)를 기준 시간 복잡도 유형 빅-오메가(Ω(n)): 최선일 때(best case)의 연산 횟수를 나타낸 표기법 빅-세타(Θ(n)): 보통일 때(average case)의 연산 횟수를 나타낸 표기법 빅-오(O(n)): 최악일 때(worst case)의 연산 횟수를 나타낸 표기법 시간 복잡도 도출 기준 상수는 시간 복잡도 계산에서 제외 가장 많이 중첩된 반복문의 수행 횟수가 시간 복잡도의 기준 예제1) 연산횟수 = N #include using namespace std; int main() { int n=1000; int cnt=1; for(int i=..

Algorithm 2023.03.22