C++

· Algorithm
Map이란? 키-값(key-value) 쌍을 저장하는 연관 컨테이너로, 키를 사용하여 값을 빠르게 검색할 수 있는 자료구이다. 'std::map'은 레드-블랙 트리(Red-Black Tree)라는 자기 균형 이진 검색 트리를 기반을 작동한다. 이 트리는 삽입, 삭제, 검색 등의 연산을 효율적으로 수행할 수 있도록 설게되어 있다. 아래에서 'std::map'의 동작원리와 사용방법을 상세히 설명하겠다. 동작원리 - 레드-블랙 트리: 'std::map' 은 레드-블랙 트리로 구현되어 있으며, 레드-블랙 트이는 이진 검색 트리의 3한 종류로, 균형을 유지하는 트리이다. 이것은 모든 노드가 레드 또는 블랙이며, 몇가지 규칙에 따라 노드가 추가되거나 제거될 때 균형을 유지한다. - 키-값 쌍: 'std::map'은..
· Algorithm
https://www.acmicpc.net/problem/10866 문제 그대로 각 명령에 따라 덱의 기능을 구현하는 문제이다. 코드 #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int N; int X; string Str; deque dec; cin >> N; if (N 10000) { return 0; } for (int i = 0; i > Str; if (Str == "push_front") { cin >> X; dec.push_front(X); } else if (Str == "push_..
· Algorithm
https://www.acmicpc.net/problem/10773 수를 입력하고 입력한 수를 모두 더하되 0을 입력하면 가장 최근에 쓴 수를 지우는 문제이다. Vector 안에 수를 넣고 0을 입력받았을 때 Vector안에 있는 수를 지우면 되겠다고 생각했다. 코드 #include #include using namespace std; int main() { int N; int input; cin >> N; int result = 0; vector arr; for (int i = 1; i > input; if (input != 0) { arr.push_back(input); } else if (!arr.empty()) { arr.pop_back(); } } for (int element : arr) { ..
· Etc.
문제를 자주 풀다보면 시간이 초과되어 오답으로 처리되는 경우가 있었다. 다른 언어는 잘 모르지만 C++언어에서 입출력을 향상시키는 방법을 몇가지 적어보려고 한다. ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(0); 의미와 장단점 ios_base::sync_with_stdio 구문은 c의 stdio와 c++의 iostream을 동기화시켜주는 역할을 하는데 이 때 iostream과 stdio의 버퍼를 모두 사용하기에 딜레이가 발생한다. 따라서 ios_base::sync_with_stdio(0)를 작성해 동기화를 비활성화 시켜줄 수 있다. 이로 인해 c++만의 독립적인 버퍼 생성, c의 버퍼와 병행할 수는 없지..
· Algorithm
https://www.acmicpc.net/problem/1929 소수를 출력하는 문제이지만 다음 문제와 같이 사용자가 직접 범위를 지정하는 경우에는 무조건 2부터 시작하지는 않기에 일반적인 소수 출력으로는 문제를 풀기 쉽지 않다. 범위 내 소수를 구하는 방법 중 하나인 에라토스테네스의 체를 이용해 문제를 풀었다. 코드 #include #include using namespace std; void Eratos(int n, int m) { if (n
alsrudwls01
'C++' 태그의 글 목록 (2 Page)