1. 기본 환경 설정 및 필수 도구
USACO 경쟁 프로그래밍을 시작하기 위해 효율적인 개발 환경을 구축하는 것이 중요합니다.
1.1. 추천 IDE 및 컴파일러
대부분의 경쟁 프로그래머는 Visual Studio Code와 g++ 컴파일러 조합을 선호합니다. 다른 옵션으로는 Code::Blocks가 있습니다.
- Visual Studio Code: 가볍고 확장성이 뛰어납니다.
- g++ (GCC): C++ 표준을 지원하는 강력한 컴파일러입니다. (Windows에서는 MinGW-w64 설치)
1.2. 기본 C++ 경쟁 프로그래밍 템플릿
각 문제마다 반복해서 작성해야 하는 boilerplate 코드를 줄이기 위해 표준 템플릿을 사용합니다.
#include <bits/stdc++.h> // 거의 모든 표준 라이브러리를 포함
using namespace std; // std:: 접두어 생략
typedef pair<int, int> pii; // pair<int, int>를 pii로 단축
int main() {
ios::sync_with_stdio(0); // C 스타일 I/O와 동기화 비활성화
cin.tie(0); // cin과 cout의 묶음을 해제 (더 빠른 I/O)
// 여기에 문제 해결 로직 작성
// 예시: int N; cin >> N;
// 예시: vector<int> arr(N); for (int i=0; i<N; ++i) cin >> arr[i];
return 0;
}
주요 개념:
#include <bits/stdc++.h>: 모든 표준 라이브러리를 간편하게 포함합니다. (경쟁 프로그래밍에서만 권장)using namespace std;: 코드의 가독성을 높여주지만, 대규모 프로젝트에서는 이름 충돌 가능성이 있습니다.typedef pair<int, int> pii;: 긴 타입을 짧은 별칭으로 만들어 코드를 간결하게 합니다.ios::sync_with_stdio(0); cin.tie(0);: C++ 스트림의 속도를 크게 향상시킵니다.