int hello_world; //변수
int helloWorld() //함수
const int HELLO_WORLD //상수
전역변수 사용은 최대한 지양!
함수로 뺄 수 있는건 최대한 빼기
인덴테이션 너무 깊게 들어가는 것 지양
continue
, return
등의 사용을 권장// 가독성 안좋은 코드
if (조건1) {
수행1
if (조건2) {
수행2
if (조건3) {
수행3
if (조건4) {
수행4
}
}
}
}
// 가독성 좋은 코드
if (!조건1) {
continue;
}
수행1
if (!조건2) {
continue;
}
수행2
if (!조건3) {
continue;
}
수행3
if (!조건4) {
continue;
}
수행4
변수 이름을 명확하게!
삼항 연산자 지양
주석 많이 권장
함수 사용 시, if-return 구조 권장
// 가독성 안좋은 코드
bool cmp (const int &a, const int &b) {
if (a.first != b.first) {
return a.first < b.first;
} else {
return a.second < b.second;
}
}
// 가독성 좋은 코드
bool cmp (const int &a, const int &b) {
if (a.first != b.first) {
return a.first < b.first;
}
return a.second < b.second;
}
입출력은 메인에서만!!
상수 선언 권장
상수는 const 상수로 선언해서 쓰도록 안내해주세요. 특히 dp 문제에서 모듈러 상수가 많이 나오는데 이러한 수들은 상수로 선언하지 않으면 실수하기 쉬워서 꼭 상수로 선언한 후 사용하도록 해주세요! + 상수로 선언해야 가독성도 높아지고, 유지보수도 쉬워집니다!
ex. dp문제에서 1000007의 나머지를 출력해야 하는 경우
// 상수로 선언하지 않음
...(중략)
dp[i] %= 1000007;
...(중략)
cout << dp[n] % 100007; // 숫자를 서로 다르게 쓰는 실수 가능성 높음
// 상수로 선언
const int MOD = 1000007; // 여기서만 실제 수를 관리하니까 실수할 일 적어짐
...(중략)
dp[i] %= MOD;
...(중략)
cout << dp[n] % MOD;
자주 사용하는 타입은 typedef 를 통해 별칭을 정하도록 권장
pair<int, int>
/ long long
/ …typedef <자료형> <별칭>;
중괄호 사용 권장
git
에 나중에 추가한 중괄호로 인해 충돌이 날수도 있어요