본문 바로가기
알고리즘/프로그래머스

[C++] 최댓값과 최솟값

by parkkingcar 2023. 6. 5.

 

최댓값과 최솟값

문자열 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

댓글