본문 바로가기

Algorithm (알고리즘)/프로그래머스 문제

프로그래머스 코딩테스트 연습 -최댓값과 최솟값 LV2: (C++)

1.문제

문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 (최소값) (최대값)형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 1 2 3 4라면 1 4를 리턴하고, -1 -2 -3 -4라면 -4 -1을 리턴하면 됩니다.

제한 조건

  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.

 

2.입력

s return
1 2 3 4 1 4
-1 -2 -3 -4 -4 -1
-1 -1 -1 -1

 

소스코드

#include <string>
#include <vector>
#include <algorithm>
#include <iostream>
using namespace std;

string solution(string s) 
{
	string answer = "";
	string tmp;
	vector<int> v1;
	for (int i = 0; i < s.size(); i++)
	{
		if(s[i] == ' ' )
		{
			v1.push_back(atoi(tmp.c_str()));
			tmp.clear();
		}
		else
		{
			tmp += s[i];
		}
	}
	v1.push_back(atoi(tmp.c_str()));
	sort(v1.begin(), v1.end(), greater<int>());
	answer += to_string(v1.back()) + " " +to_string(v1.front());
	return answer;
}

int main()
{
	cout << solution("1 2 3 4");
	return 0;
}

 

체점 결과

정확성: 100.0

합계: 100.0 / 100.0

 

출처-  https://programmers.co.kr/learn/courses/30/lessons/12939