시간복잡도, 공간복잡도
시간복잡도 - 입력의 크기와 문제를 해결하는데 걸리는 시간의 상관관계
제한 시간 1초 -> 프로그램이 3-5억번의 연산 안에 답을 내고 종료
빅오표기법 - 주어진 식을 값이 가장 큰 대표항만 남겨서 나타내는 방법
공간복잡도 - 입력의 크기와 문제를 해결하는데 필요한 공간의 상관관계
512MB = 1.2억개의 int
실수 자료형
1. 실수의 저장/연산 과정에서 반드시 오차가 발생할 수 밖에 없다.
2. double에 long long 범위의 정수를 함부로 담으면 안된다.
3. 실수를 비교할 때는 등호를 사용하면 안된다. (둘의 차이가 아주 작다는 의미로 1e-12 사용 권장)
int main(void){
double a = 0.1+0.1+0.1;
double b = 0.3;
if(a==b) cout<<"same1";
if(abs(a-b) <1e-12) cout<<"same2";
}
/***result***
same 2
************/
C++ STL
vector - 일종의 가변배열
void func1(vector<int> v){
v[10] = 7;
}
int main(){
vector<int> v(100);
func1(v);
cout<< v[10];
}
//0 : vector는 함수 인자로 실어보내도 원본에 영향 X, 배열은 주솟값을 주기때문에 영향 O
bool cmp2(vector<int>& v1, vector<int>& v2, int idx){
return v1[idx]>v2[idx];
}
//복사본 만들지 않고 참조대상의 주소 정보만 넘어가서 시간복잡도 줄일 수 있음
표준 입출력
cin/cout 입출력으로 인한 시간초과 막기 위해
cin.tie(0);
ios::sync_with_stdio(0);
endl 절대!!!!! 쓰지 말것!! "\n"출력
출력 맨 마지막 공백 혹은 줄바꿈이 추가로 있어도 상관 X