이 글은 코딩테스트를 C++로 공부할 건데 C++을 배우긴 했지만 기억이 안 나서 기억이 안 나는 부분들을 하나씩 더듬어 가면서 백준의 단계별 문제를 풀 것임. 그래서 코딩에 대한 지식이 전무하다면 이 글은 도움이 안 될 수 있다.
입출력
#include <iostream>
using namespace std;
int main() {
int a;
cin >> a;
cout << a;
return 0;
}
1. iostream 이라는 헤더를 사용해서 입출력 함수를 사용할 수 있도록 한다.
2. std 라는 namespace를 사용한다는 뜻인데 이걸 안 쓰면 std::cin 또는 std::cout 처럼 함수를 사용할 때 전부 붙여줘야한다.
3. cin >> a a에 입력
4. cout << a a를 출력
5. C++11 부터는 main 함수에서 return 문을 생략할 수 있다. 이전 표준에서 작성된 코드와의 호환성을 고려하여 명시적으로 작성해주는 것이 좋은데 코테 풀면서는 큰 상관이 없을듯 함.
* 후에 많은 헤더 파일을 사용해야될 수 있는데 코테를 풀 때 <bits/stdc++.h> 헤더를 사용하면 많은 헤더를 추가할 필요없이 대부분 사용할 수 있게 된다.
소수점 출력
cout.precision(x);
실수의 정수부와 소수부를 합친 전체의 출력 범위를 설정하는 함수. 이게 무슨 말이냐면,
int main() {
double a = 1234.5678;
cout.precision(6);
cout << a; // 결과: 1234.57
}
출력의 결과로 1234.57이 나오게된다 소수점 아래로 6자리가 아니라 총 6자리가 출력된다는 것. 마지막 자리는 반올림 됨.
int와 double과 long long의 범위
cout을 사용하여 double형을 출력할 경우, 큰 수에 대해서 지수형으로 출력하게 된다. ex) 3.7037e+10
큰 정수를 입력 받아야 하는 상황에서는 long long 사용을 추천함.
소수를 구해야 하는 연산에서는 double이 소수점 아래 표현을 더 많이 할 수 있으니 double을 추천함.
int | -2,147,483,648 ~ 2,147,483,647 (+-21억) |
double | 1.7E+/-308(15개의 자릿수) |
long long | -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807 (+-900경) |
esacpe sequence(탈출 문자)
\\ | \역 슬래시 출력 |
\' | '싱글 quote출력 |
\n | 개행 |
\t | tab 출력 |