코딩테스트 응시 가능한 회사가 굉장히 많다.
인터넷 자료가 정말 풍부하다.
C++ STL 에서 제공해주는 기능들이 꽤나 다양하다.
파이썬에 비해 숏코딩에 있어서 다소 불리한 면이 있다.
특정 유형에 요구되는 내장함수들에 있어서 취약점이 두각된다. (문자열 처리 => 파이썬이 유리)
. 기초작성 요령, 배경지식
1. Brute Force (완전탐색)
2. 배열
2. 링크드리스트
3. 스택
4. 스택 활용 (수식의 괄호쌍)
5. 큐
6. 덱
7. BFS (2차원 배열) ( + DFS )
8. 재귀
9. BackTracking (백트래킹)
10. 정렬1 (Insertion, Selection, Bubble, Merge)
11. 정렬2 (Counting, Radix, Stable, STL Sort)
12. 그래프 (BFS, DFS, 인접행렬, 인접리스트)
13. 트리
14. Dynamic Programming (동적 계획법)
15. 그리디 (탐욕법)
16. 수학 (순열, 조합)
17. Binary Search (이진탐색)
18. 투 포인터
19. 해시 테이블
20. 이진탐색트리 (Binary Search Tree)
21. 우선순위 큐 (Priority Queue)
22. 시뮬레이션(구현)
===========================
학습 미정 : 다익스트라, 플로이드 와샬, 최소신장트리(Spanning SubTree),
비트마스킹, 트라이(Trie), 위상정렬(Topological Sort)
=> 정수형(int) 의 범위 : –2,147,483,648 ~ 2,147,483,647
=> 가끔씩 long long 을 사용해야하는 경우가 등장한다.
중요!!!! => 만일 int 배열에 int 타입의 범위를 벗어나는 값이 할당되는 경우,
"오버플로우(OverFlow)" 또는 "언더플로우(UnderFlow) 가 발생해서 이상한 값이 할당될 것이다.
ex) char 배열 정수 "128" 할당되는 경우 OverFlow 가 발생 => 130이 아니라 뜬금없는 값인 "-127" 이 할당된다.
이 문제는 배열을 "unsigned char" 타입 또는 "int" 타입 또는 "long long" 타입등으로 변환해서 해결 가능하다.
예시 문제) BOJ 2193 : 이친수
=> 배열에 할당되는 값이 생각보다 굉장히 큰 값이 할당된다. 따라서 int 배열을 선언했을 때 "틀렸습니다" 로 처리되는 값이 long long 타입으로 바꾸자 "정답 처리" 가 되었다.
int n;
cin >> n;
for(int i=0; i < n; i++){
cout << "likelion" << "\n";
}
int n ;
cin >> n;
// 알고리즘 문제에서 while 문을 보통 이렇게 사용하는데,
while(n--){
cout << "likelion" << '\n';
}
~~ (중간에 이러쿠 저러쿠 코드)
// 아래처럼 또 n 을 다시 활용해야하는 경우가 등장할 수 있다.
while(n--){
cout << "hi" << '\n'; // 앞서 n을 0으로 만들어버렸기 때문에, 현재 보고있는 이 반복문은 아예 실행되지 않는다.
}
int arr[91]; => 이렇게 범위 넉넉하게 설정하자!
int arr[92];