언젠가 고쳤던 좋지 않은 습관들 ( toggle )
-
줄바꿈이 필요할 땐
std::endl
대신'\n'
쓰기 -
std::cin.tie(nullptr)->ios_base::sync_with_stdio(false);
처럼 쓰지 말고 분리해서 쓰기cin.tie(nullptr);
cout.tie(nullptr);
ios_base::sync_with_stdio(false);
-
for
,while
같은 제어문 키워드와 조건식 괄호 사이는 한 칸 띄우기for(;;)
// badfor (;;)
// good! -
if
,else if
,else
구문 정렬하기 -closing brace on new line, else on same line
if (cond) {
} else if (cond) {
// good!} else {}
-
2024.05 - 구글 C++ 스타일가이드를 따르려 노력하되, 의도적으로 무시할 부분들을 정하기 ( 문제 해결이 우선! )
std
네임스페이스를 가져오는 것을 권장하지 않지만, 코드 작성 편의성을 위해using namespace std;
쓰기- 여러 문장을 한 줄에 작성하는 것을 권장하지 않지만,
int N; cin >> N;
정도는 한줄로 작성하기
-
2024.06 - 전처리문과 다른 코드들 사이를 한 줄 띄우기, indentation을
4 spaces
에서2 spaces
로 줄이기 -
2024.07 - 클래스의
operator<
에는 반드시 const 붙여주기,std::stack
대신std::vector
쓰기 ( 더 편하다! )- bool operator<(const
Classname& other) const { stk.push() == vec.push_back()
|stk.pop() == vec.pop_back()
|stk.top() == vec.back()
- bool operator<(const
-
2024.08 - 숫자가 조금이라도 커질 것 같으면 long long 자료형 사용하기!!! (
using ll = long long;
)
-
2024.09 -
std::deque
를 사용할 때, 실제로 reverse 연산을 수행하는 대신flag
쓰기reverse(dq.begin(), dq.end());// badbool rev = true;
// good!
-
2024.12 -
Big-O 시간 복잡도
뿐만 아니라,대략적인 연산량
도 생각해보기 ( 브루트포스가 가능할지 검토! )