📍 문제

📍 풀이

입력받은 string의 사이즈 만큼 for문을 돌며

공백이 아니라면
➔ tmp에 삽입

공백이라면 (즉 하나의 숫자가 끝났다는 뜻)
➔ tmp를 int로 변환 후(stoi 함수 사용) v에 삽입
➔ tmp 비운다 (다음 숫자를 위해)

💡 이렇게 하는 이유는 -1과 같은 음수를 적절하게 int로 변환하기 위해서 

 

 

마지막 원소는 공백이 아니기 때문에 for문에서 삽입되지 않는다.

따라서, 마지막 숫자는 for문이 완료된 후에 따로 넣어주어야 한다.

 

그 후, sort 함수를 사용해 오름차순으로 정렬한다.

그리고 answer에 vector의 첫번째 원소(최솟값) + " " + vector의 마지막 원소(최댓값) 을 삽입한다.

 

📍 코드

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

string solution(string s) {
    string answer = "";

    vector<int> v;
    string tmp;

    for (int i{ 0 }; i < s.length(); i++) {
        // 공백이 아니면 
        if (s[i] != ' ') {
            tmp += s[i];
        }
        // 공백이면 (즉, 숫자 하나가 끝남)
        else {
            v.push_back(stoi(tmp));
            tmp.clear();
        }
    }

    // 마지막 원소가 공백이 아니기 때문에
    // for문에서 vector에 삽입되지 않음
    // 따로 넣어주어야 함
    v.push_back(stoi(tmp));

    sort(v.begin(), v.end());

    answer = to_string(v.front()) + " " + to_string(v.back());

    return answer;
}

+ Recent posts