코딩테스트 문제를 풀때마다 여기서는 이거, 이런식으로 패턴화(?)된 부분들을 정리 좀 해놓으려고 한다.
시작은 문자열 자르기(더블릿, 백준, 프로그래머스에서 주로 문제를 푸는데 프로그래머스 문제들에서 자주 사용하는거 같다.)
getline()
ex) string s = {010-1234-6543, 010-5678-1234,010-0000-0000} 을 ,단위로 분리하기
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
using namespace std;
int main()
{
string str = "{010-1234-6543,010-5678-1234,010-0000-0000}";
str = str.substr(1,str.length() - 2); //{, } 제거
stringstream ss(str);
vector<string> phoneNums;
string s;
while (getline(ss, s, ','))
{
cout << s << endl;
phoneNums.push_back(s);
}
for (string i : phoneNums)
{
cout << i << endl;
}
return 0;
}
string을 char * 로 변경해서 strtok()를 쓸수도 있지만 내가 느끼기엔 getline 함수 사용이 훨씬 직관적이고 쉽다고 생각해서 getline을 사용한다.
'알고리즘 > 정보' 카테고리의 다른 글
해싱(map,set) (0) | 2020.01.21 |
---|---|
parametric search (0) | 2019.11.14 |
댓글