최댓값과 최솟값
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요. 예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
입출력 예
"1 2 3 4" | "1 4" |
"-1 -2 -3 -4" | "-4 -1" |
"-1 -1" | "-1 -1" |
입력 문자열을 공백을 기준으로 분리한 후, 각각 stoi()로 숫자로 변환하여 벡터a에 push합니다. 이후 벡터a를 오름차순으로 정렬한 후, 첫번째 값과 마지막값을 정답 문자열에 맞게 더하고 반환합니다.
#include <string>
#include <vector>
#include <sstream>
#include <algorithm>
using namespace std;
string solution(string s) {
string answer = "";
// 문자열을 스트림화
stringstream ss(s);
string word;
vector<string> words;
vector<int> a;
// 스트림을 통해, 문자열을 공백 분리해 vector에 할당
while (getline(ss, word, ' ')) {
words.push_back(word);
}
for(int i = 0 ; i < words.size(); i ++){
a.push_back(stoi(words[i]));
}
sort(a.begin(), a.end());
answer += to_string(a[0]) + ' ';
answer += to_string(a[a.size() - 1]);
return answer;
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[C++] 다음 큰 숫자 (0) | 2023.06.13 |
---|---|
[C++] 예상 대진표 (1) | 2023.06.09 |
[C++] 옹알이 (1) (0) | 2023.05.30 |
[C++] 평행 (0) | 2023.05.25 |
[C++] 연속된 수의 합 (0) | 2023.05.24 |
댓글