본문 바로가기

ALGORITHM

[공부] 바킹독의 실전 알고리즘 (ing)

https://github.com/encrypted-def/basic-algo-lecture

 

encrypted-def/basic-algo-lecture

바킹독의 실전 알고리즘 강의 자료. Contribute to encrypted-def/basic-algo-lecture development by creating an account on GitHub.

github.com

 

바킹독의 실전 알고리즘을 보면서 모르거나 헷갈렸던 부분, 기억해야 하는 부분을 다시 정리하였습니다.

 

https://www.notion.so/neuli/2edd1c3c437e4ae98e6492f515d61e21

 

바킹독의 실전 알고리즘

실수 자료형의 특징

www.notion.so

 

 


실수 자료형의 특징

  1. 실수의 저장/ 연산 과정에서 반드시 오차가 발생한다.
  2. double에 long long 범위의 정수를 함부로 담으면 안된다.다만 int는 최대 21억이기 때문에 double에 담아도 오차가 생기지 않습니다.
  3. double은 유효숫자가 15자리인데 long long은 최대 19자리니까 1018+1과 1018을 구분할 수가 없고 그냥 같은 값이 저장됩니다. 즉, double에 long long 범위의 정수를 담을 경우 오차가 섞인 값이 저장될 수 있습니다.
  4. 실수를 비교할 때는 등호를 사용하면 안된다.

STL

STL을 함수의 인자로 넘길 때는 참조자를 사용하자. ex) vector

표준 입출력

공백을 같이 입력 받을 때

string s; getline(cin, s); cout << s

getline 은 string만 가능하다.

배열

배열을 초기화 시킬 때 알고리즘 헤더의 fill 함수를 사용하자.

fill(a, a + 21, 0);

for 문 벡터 순회

vector<int> v1 = {1, 2, 3}; // v1의 값들이 바뀌지 않음 for (int e: v1) { e++; cout << e << "\\n"; } // 값이 바뀜 for (int& e: v1) { e++; cout << e << "\\n"; }