Algorithm

[C++] 알고리즘 시간 단축 및 헤더

axnuo 2024. 11. 13. 22:31

백준을 매번 풀다 말다 풀다 말다...

늘 까먹는 것 같아서 우선 자주 쓰는 헤더랑 시간 단축하는 방법을 좀 적어보려고 한다!!!

 

왜 C++을 쓸까?

그것은... C언어를 먼저 배웠기 때문입니다.

C++을 사용하는 이유는 STL이 있기 때문이 큽니다.

STL은 나중에 또 알고리즘 풀면서 세세히 공부를 하고 정리를 해보겠습니다.

 

C++ 헤더파일

C언어라면 `#include <stdio.h>` 가 있겠죠

C++에서는 기본 헤더가 `#include <iostream>`입니다.

근데!! 코드를 짜다보면 더 많은 헤더들이 필요합니다. string이라던가... algorithm이라던가...

그래서 `#include <bits/stdc++.h>`를 사용하시는 분들도 많습니다.

하지만 저는 아직 써본적이 없습니다. VS Code 환경에서 사용하기 위해서는 세팅이 필요하다고 하더군요

https://miniolife.tistory.com/11

 

Visual Studio에서 <bits/stdc++.h> 사용하기

처음에 알고리즘 문제를 풀다보면 귀찮?까다로운? 점이 include일 것이다. 어떤 헤더 파일에 어떤 함수가 들어있는지도 익숙하지 않고, 컴파일러는 include를 하라고 오류를 뱉어댄다. 어느 헤더 파

miniolife.tistory.com

해당 블로그를 참고하시면 좋을 듯 합니다.

 

C++ 시간 단축 방법

C++로 알고리즘 문제를 풀다보면 시간 초과가 나는 경우를 마주할 수 있는데요...

그럴 땐 

ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);

이것을 넣어보시는 것을 추천합니다. 위치는 main 시작 부분에 넣으시면 됩니다.

 

그래서 결론

#include <iostream>

using namespace std;

int main(){
	ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    //기타 코드
    
    return 0;
}

저는 이렇게 사용하려고 합니다.

`using namespace std`는 무엇이냐면 std라는 클래스를 사용하겠다는 의미입니다.

해당 문장을 사용하지 않으면 cin, cout을 그냥 쓰지 못하구 std::cin, std::cout 같은 형식으로 사용해야한다는 불편함이 있기 때문에 저는 늘 사용하는 편입니다.

 

열심히 알고리즘을 풀도록