📍 문제
📍 풀이
입력받은 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;
}
'백준 & 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv.2 최솟값 만들기 C++ (0) | 2023.07.05 |
---|---|
[프로그래머스] Lv.2 JadenCase 문자열 만들기 C++ (0) | 2023.07.04 |
[BOJ/백준] C++ 1018번 체스판 다시 칠하기 문제 풀이 (0) | 2023.07.01 |
[BOJ/백준] C++ 1764번 듣보잡 문제 풀이 (0) | 2023.03.04 |
[BOJ/백준] C++ 10816번 숫자 카드 2 문제 풀이 (0) | 2023.02.27 |