getline함수와 istringstream 사용하는 방법
- istringstream : 문자열을 추출해내는 작업. #include <sstream> 필요
- getline(istream& ls, string& str, delim) :
- ls: 입력스트림 object
- str: 입력받은 문자열을 저장할 string 객체
- delim: 구분자. 아래 예에선 공백(' ')
#include <string>
#include <vector>
#include <sstream>
#include <string>
using namespace std;
int main(string s) {
istringstream ss(s);
string strBf;
vector<string> num;
// 구분자를 getline의 세번째 인수로 설정. 이 예에선 공백을 구분자로 설정함.
while(getline(ss,strBf,' ')){
num.push_back(strBf);
}
return 0;
}
응용 예 : 프로그래머스 Lv.2 - 최댓값과 최솟값
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>
#include <string>
using namespace std;
string solution(string s) {
istringstream ss(s);
string strBf;
vector<string> num;
int size=0;
int minA,maxA;
while(getline(ss,strBf,' ')){
num.push_back(strBf);
size++;
}
for(int i=0;i<size;i++){
if(i==0){
minA=maxA=stoi(num[i]);
}else{
maxA=max(stoi(num[i]),maxA);
minA=min(stoi(num[i]),minA);
}
}
string answer = "";
answer+=to_string(minA);
answer+=" ";
answer+=to_string(maxA);
return answer;
}
https://school.programmers.co.kr/learn/courses/30/lessons/12939
우왕 내코드 비효율의 끝판왕 ^^
왜 sorting할 생각 못했지 ..
왜 굳이 for문 안에서 if로 조건분기처리했지 ..
num.clear() 해주기? 알아봐야할듯
아 글구 첨안 사실! str += "ㅇㅇㅇ" 하면 걍 string 연결해주는 역할 가능~