https://programmers.co.kr/learn/courses/30/lessons/12939
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
string solution(string s) {
vector<int> v;
for (int i = 0; i < s.size(); ++i)
{
int end = (s[i] == '-') ? i + 1 : i;
// 숫자 변환
int n = 0;
while (end < s.size() && s[end] != ' ')
{
n *= 10;
n += s[end] - '0';
++end;
}
// 음수 양수 반영
n *= (s[i] == '-') ? -1 : 1;
// vector push
v.push_back(n);
i = end;
}
// 최소값, 최대값 구하기
auto minmax = minmax_element(v.begin(), v.end());
return to_string(*minmax.first) + " " + to_string(*minmax.second);
}
저렇게 숫자를 직접 만들어주는 편이 stoi 보다 더 빠르다.
minmax_element를 한번 써보았다.
이터레이터 pair 형태로 받아오는 점만 주의하면 된다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스]연습문제 : 피보나치 수(level 2)(c++) (0) | 2020.05.20 |
---|---|
[프로그래머스]연습문제 : 최솟값 만들기 (level 2)(c++) (0) | 2020.05.20 |
[프로그래머스]연습문제 : 행렬의 곱셈(level 2)(c++) (0) | 2020.05.20 |
[프로그래머스]연습문제 : 숫자의 표현(level 2)(c++) (0) | 2020.05.20 |
[프로그래머스] 찾아라 프로그래밍 마에스터 : 폰켓몬(level 2)(c++) (0) | 2020.05.20 |
댓글