본문 바로가기
알고리즘 문제

[알고리즘문제] 프로그래머스 - 최대값과 최솟값

by 박연호의 개발 블로그 2020. 1. 6.

문자열에서 최솟값과 최대값을 구하는 문제이다.

 

java는 split메소드가 있는데 c++에는 없다...그게 좀 아쉽다.

어쨋든 문자열에서 각 정수의 구분은 ' '로 하기 때문에 ' '을 만나기 전까지 문자를 이어 붙인 다음에 ' '을 만나면 vector에 넣는다.

마지막에는 ' '가 없기 때문에 임의로 넣어준다.

 

이 문제를 처음 풀때는 좀 노가다로 했는데, stoi("-3")이 -3이 되는 줄 몰랐다. 알앗으면 빨리 풀었을 텐데....

 

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

using namespace std;

string solution(string s) {
    
    string answer = "";
    string temp="";
    vector<int> v;
    
    
    for(char c : s){
        
        if(c== ' '){
            v.push_back(stoi(temp));
            temp.clear();
            continue;
        }
        temp+=c;
    }
    v.push_back(stoi(temp));
    sort(v.begin(),v.end());
    
    answer+=to_string(v.front());
    answer+=" ";
    answer+=to_string(v.back());
    
    return answer;
}