S+='A'와 S=S+'A'의 차이
결론적으로 S+='A'를 사용해야 더 빠르다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int n = 1000000;
for (int i=0; i<n; i++) {
s += "A"; }
return 0;
}
S에 'A'를 100만번 추가하는 코드이며, 시간복잡도는 O(N)이 된다.
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
int n = 1000000;
for (int i=0; i<n; i++) {
s = s + "A"; }
return 0;
}
반면 이 공식은 매번 새로운 문자열 S와 'A'를 더해주기 때문에, 시간복잡도는 O(N^2)이 된다.
* Java에서는 어떠한 방식을 사용하건 시간복잡도가 O(N^2)가 된다. 때문에 Stringbuilder를 이용해야한다.
'👩🏻💻 Programming > C++' 카테고리의 다른 글
lower_bound와 upper_bound (0) | 2021.04.06 |
---|---|
auto 변수와 자료형 타입 (0) | 2020.11.09 |
exit(0)과 exit(1)의 차이 (0) | 2020.09.18 |
memset과 fill메모리 초기화 함수 (0) | 2020.09.16 |
vector<int> v(n)과 vector<int> v[n]의 차이 (0) | 2020.09.08 |