C++을 사용해서 알고리즘 문제를 처음 풀 때 문자열 나누기 같은 문제가 많았다. 자바를 배웠던 나는 당연히 split을 사용해서 나눠버리려고 했는데 없는듯했다. 찾아보니 split을 애초에 구현을 했어야 했고 stringstream과 getline이 이해가 안 됐다.




string형으로 읽었을 때 abc와 ab만 나올 줄 알았는데 숫자도 모두 string형으로 읽었기 때문에 모두 출력됐다.
#include <string>
#include <sstream>
using namespace std;
vector<string> split(string str, char delimiter);
vector<string> split(string input, char delimiter) {
vector<string> answer;
stringstream ss(input);
string temp;
while (getline(ss, temp, delimiter)) {
answer.push_back(temp);
}
return answer;
}
while 문으로 구분 값인 delimiter 전까지의 문자열을 넣어주고 temp 변수에 잘라서 넣어주고 answer 벡터에 넣어준다.
잘라진 문자열이 담긴 벡터를 리턴해준다.