안경잡이개발자

728x90
반응형

  이번 시간에는 알고리즘 대회를 위한 C++ 대회 환경구성해보도록 하겠습니다. 가장 먼저, 자신의 디버깅 및 개발을 위한 개발환경을 구축하셔야 합니다. 저는 정말정말 가벼운 개발환경인 Dev C++을 선호하는 편입니다. 따라서 Dev C++을 기준으로 설명드리고자 합니다.


  Dev C++ 설치 경로: https://sourceforge.net/projects/orwelldevcpp/


  Dev C++을 설치하셨으면, 실행 이후에 C++11로 컴파일 옵션 설정을 해주시면 됩니다. C++11에는 알고리즘 대회에 적용하기 쉬운 다양한 라이브러리가 준비되어 있기 때문에 실제로 굉장히 많은 하이 코더들이 이를 사용하고 있습니다. 이를 위해서 'Tools' - 'Compiler Options' 탭으로 이동합니다.



  이후에 다음과 같이 -std=c++11 컴파일 옵션을 적용합시다.


  -std=c++11

  이제 간단히 "Hello World!"를 출력하는 프로그램을 작성해보도록 하겠습니다.



#include <bits/stdc++.h>

using namespace std;

int main(void) {
	cout << "Hello World!";
	return 0;
}

  실행 결과는 다음과 같습니다.



※ #include <bits/stdc++.h>란? ※


  알고리즘 대회에서 가장 많이 사용되는 헤더 파일 중 하나가 바로 bits/stdc++.h입니다. 표준 라이브러리를 모두 포함하고 있는 헤더로서 이것을 사용하면 별도의 헤더를 추가적으로 넣지 않아도 됩니다. 다만 이 헤더는 GCC 전용 라이브러리이므로 GCC를 지원하는 대회 환경에서 사용해야 합니다. 다행히도 대부분의 대회 환경에서는 이를 지원합니다.


  이 헤더에 포함되어 있는 대표적인 라이브러리들은 다음과 같습니다.


  - #include <string>

  - #include <vector>

  - #include <memory>
  - #include <map>

  - #include <algorithm>

  - #include <queue>


  이외에도 정말 많이 사용되는 라이브러리들이 모두 포함되어 있으므로 시간 절약 및 숏코딩 측면에서 매우 유리하다고 할 수 있습니다. 한 번 벡터(Vector) 라이브러리를 이용해서 N개의 원소를 저장하여 출력하는 프로그램을 작성해보도록 합시다.

#include <bits/stdc++.h> using namespace std; int main(void) { int n; cin >> n; vector<int> a;

for(int i = 0; i < n; i++) { a.push_back(i); } for(int i = 0; i < n; i++) { cout << a[i] << ' '; } return 0; }


  실행 결과는 다음과 같습니다.




728x90
반응형