프로그래머스 LV2 문제들을 둘러보던 도중 '최댓값과 최솟값'이라는 LV0에서 볼 듯 한 문제 이름이 포착되었다.
그래서 마치 올려치기 당한거같은 이 문제를 확인해본 결과 단순히 정수 값을 max, min 함수를 사용하는 문제는 아니였고, input값을 문자열로 받고 그 문자열을 공백을 기준으로 숫자들을 자른 후 나눠진 숫자들의 최댓,최솟값을 찾는 문제였다.
이번 문제는 단순히 반복문과 to_string()함수를 사용하는 방법 말고 stringstream 사용하여 문제를 풀어봤다.
Stringstream
C++에서 stringstream은 주어진 문자열에서 필요한 자료형에 맞는 정보를 꺼낼 때 유용하게 사용된다.
문자열을 공백과 '\n'을 기준으로 여러 개의 다른 형식으로 차례대로 분리할 때 편리하다.
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>
using namespace std;
string solution(string s) {
string answer = "";
stringstream ss(s);
string temp;
int mins = 2141111111;
int maxs = -2141111111;
while(ss >> temp)
{
maxs = max(stoi(temp),maxs);
mins = min(stoi(temp),mins);
}
answer += to_string(mins) + " " + to_string(maxs);
return answer;
}