알고리즘 대회를 위한 C++ 대회 환경 구성하기
이번 시간에는 알고리즘 대회를 위한 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; }
실행 결과는 다음과 같습니다.
'알고리즘 대회' 카테고리의 다른 글
[코드포스] Codeforces Round #634 (Div. 3) (0) | 2020.04.23 |
---|---|
[코드포스] Codeforces Round #636 (Div. 3) (0) | 2020.04.23 |
코드포스(Codeforces) 개요 및 문제 풀어보기 (0) | 2018.11.27 |
코드 포스(Code Force) 1055 - C. Lucky Days (0) | 2018.11.12 |
코드 포스(Code Force) 1055 - B. Alice and Hairdresser (0) | 2018.11.12 |