본문 바로가기

개발/C++3

C++ String 사용할 때, 시간복잡도 줄이는 법 문자열 s 뒤에 "A"를 10만 번 더하는 경우, 아래 케이스에서 for 연산을 10만 번 반복합니다. 1번 케이스 함수실행시간 : 0.004013s #include #include #include using namespace std; int main() { clock_t start, finish; double duration; string s; int n = 100000; start = clock(); for (int i = 0; i < n;i++) { s += "A"; } finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; cout 2023. 7. 13.
[C++] String 공백 분리 C++ STL sstream을 사용하여 문자열의 공백을 기준으로 분리합니다. 공백을 기준으로 분리한 후 변수에 저장, vector에 저장 #include #include #include #include using namespace std; int main(){ // 공백 분리할 문자열 선언 string str = "aaa bb c"; // 문자열을 스트림화 stringstream ss(str); string word; vector words; // 스트림을 통해, 문자열을 공백 분리해 vector에 할당 while (getline(ss, word, ' ')) { words.push_back(word); } cout 2023. 5. 18.
[C++] 우선순위 큐(Priority Queue) 우선순위 큐(Priority Queue) 먼저 큐(Queue)는 먼저 들어오는 데이터가 먼저 나가는 선입선출(FIFO) 형식의 자료구조입니다. 우선순위 큐(Priority Queue)는 이와 다르게 항상 우선순위가 가장 높은 데이터에만 관심이 있고, 이 데이터만 먼저 나갈 수 있는 형태의 자료구조입니다. 이는 배열, 연결 리스트를 통해서도 구현이 가능하지만, 힙을 이용해야지만이 삽입, 삭제 시간을 O(logN)으로 맞출 수가 있기 때문에 보통 힙을 이용하여 우선순위 큐를 구현하고는 합니다. 숫자가 주어질 때마다 앞에 있는 숫자들을 전부 탐색해 그 중 최댓값을 골라야 할때 사용하면 됩니다. C++에서는 이를 표현하기 위해 priority_queue라는 STL을 이용할 수 있습니다. queue STL에 포함.. 2022. 12. 2.