문제 설명
문자열 s에는 공백으로 구분된 숫자들이 있고, s에 다타나는 숫자 중 최소값과 최대값을 찾아 "(최소값) (최대값)" 형태의 문자열을 return
https://school.programmers.co.kr/learn/courses/30/lessons/12939
문제 풀이법
문자열을 공백을 기준으로 split하고, stoi를 통해 int형 벡터로 받아준다
이후 벡터를 오름차순으로 정렬하고, 최솟값과 최대값을 하나의 문자열로 생성한다
문자열을 공백을 기준으로 split할때 사용하는 것이 string stream이다
#include <sstream> 헤더를 적으면 사용할 수 있다
string stream은 메모리 버퍼에 문자열을 저장해두고, 필요할 때 사용할 수 있다
주로 문자열에서 원하는 자료형의 데이터를 추출할 때 사용한다
소스 코드
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
using namespace std;
vector<string> split(string input, char delimiter) {
vector<string> result;
stringstream ss(input);
string tmp;
while (getline(ss, tmp, delimiter)) {
result.push_back(tmp);
}
return result;
}
string solution(string s) {
string answer = "";
vector<string> str = split(s, ' ');
vector<int> num;
for (string tmp : str) {
int i = stoi(tmp);
num.push_back(i);
}
sort(num.begin(), num.end());
answer = to_string(num[0]) + ' ' + to_string(num[num.size() - 1]);
return answer;
}
'Algorithm Study' 카테고리의 다른 글
[프로그래머스] 2단계 - JadenCase 문자열 만들기 (0) | 2023.12.27 |
---|---|
[프로그래머스] 1단계 - 가장 가까운 같은 글자 (0) | 2023.12.26 |
[프로그래머스] 1단계 - 과일 장수 (0) | 2023.12.22 |
[프로그래머스] 0단계 - 안전지대 (0) | 2023.12.22 |
[프로그래머스] 0단계 - 겹치는 선분의 길이 (0) | 2023.12.22 |