최댓값과 최솟값 (프로그래머스) - C++
2021. 2. 20. 19:54ㆍAlgorithm
- 문제
- str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요.
- 설명
- 문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다.
- 풀이
- 간단한 형변환 문제이다.
- string을 기준이 되는(공백) char로 나눈 후, sstream과 getline을 사용
- string을 integer로 변환하여 배열에 저장한다. stoi 를 사용
- 배열에서 최댓값과 최솟값을 찾아 answer에 입력해준다. *min(max)_element 사용
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 | #include <string> #include <vector> #include <sstream> #include <iostream> #include <algorithm> using namespace std; vector<int> split(string s , char delimiter) { vector<int> split_integer_vector; stringstream ss(s); string temp; //getline(istream , str , delimiter) //입력받은 string을 기준자를 통하여 나누어 정수로 형변환 한 뒤에 저장한다. while (getline(ss, temp, delimiter)) { split_integer_vector.push_back(stoi(temp)); } //문자열을 정수 벡터로 정리한 후 반환 return split_integer_vector; } string solution(string s) { string answer = ""; vector<int> numbers; numbers = split(s , ' '); //벡터의 최소값 int min = *min_element(numbers.begin() , numbers.end()); //벡터의 최소값 int max = *max_element(numbers.begin() , numbers.end()); answer = to_string(min) + " " + to_string(max); return answer; } | cs |
'Algorithm' 카테고리의 다른 글
땅따먹기 (프로그래머스) - C++ (0) | 2021.02.22 |
---|---|
가장 큰 정사각형 찾기 (프로그래머스) - C++ (0) | 2021.02.20 |
최솟값 만들기 (프로그래머스) - C++ (0) | 2021.02.20 |
다음 큰 숫자 (프로그래머스) - C++ (0) | 2021.02.20 |
9251 - LCS(Longest Common Subsequence) (0) | 2020.09.13 |