[바킹독의 실전 알고리즘] 코드 작성 Tips

Jeanine·2022년 2월 28일
0

algorithm

목록 보기
2/17
post-thumbnail

1. STL과 함수 인자

  • 함수 인자로 int가 들어갈 때 -> 원본에 영향 X
  • 함수 인자로 array가 들어갈 때 -> 원본에 영향 O
  • 함수 인자로 구조체가 들어갈 때 -> 원본에 영향 X

참조자

void swap3(int& a, int& b) {
	int tmp = a;
    a = b;
    b = tmp;
}

함수 내의 코드에서는 그냥 int를 쓰듯이 원본을 바꿀 수 있음!

STL

  • 원본에 영향 X (복사해서 보냄)
  • 별도로 함수를 만들어버리면 복사하는 과정에서 시간복잡도가 늘어남
  • e.g. vector

2. 표준 입출력

공백 입력 방법

  • scanf나 cin 둘 다 공백 앞까지만 입력을 받음
  • 해결방법은 아래와 같음
string s;
getline(cin, s);
cout << s;

❗️주의 ❗️
getline은 '\n'을 구분자로 사용하고, 이를 버퍼에서 지움
그러나 cin은 '\n', '띄어쓰기', 'tab'을 구분자로 사용하고, 이를 버퍼에서 지우지 않음
cin을 쓰고 getline을 쓰면 cin.ignore() 사용 필수

cin/cout 시간초과 방지

ios::sync_with_stdio(false); // C stream과 C++ stream 동기화를 끊음 -> 섞어쓰면 안됨!
cin.tie(0); // 기본적으로 cin 명령을 수행하기 전에 cout 버퍼를 비워줄 필요가 없음
cout.tie(0);

endl 대신 /n 쓰기

  • 중간중간 버퍼를 비울 필요 X
profile
Grow up everyday

0개의 댓글