728x90
반응형
문제 설명
문자열 s에는 공백으로 구분된 숫자들이 저장되어 있습니다. str에 나타나는 숫자 중 최소값과 최대값을 찾아 이를 "(최소값) (최대값)"형태의 문자열을 반환하는 함수, solution을 완성하세요.
예를들어 s가 "1 2 3 4"라면 "1 4"를 리턴하고, "-1 -2 -3 -4"라면 "-4 -1"을 리턴하면 됩니다.
제한 사항
- s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예
문제 풀이
이번 문제는 문자열을 잘 다룰 수 있는지 체크하는 문제였습니다.
주어진 문자열의 공백(" ")을 기준으로 숫자들을 분리하고, 최대값과 최소값을 계산하면 되는 간단한 문제였습니다.
정답 코드
더보기
풀이 시간 : 17m 56s
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
int mxValue = -987654321;
int mnValue = 987654321;
// 문자열 s에서 공백(" ")을 발견할 수 없을 때까지 반복
while(!s.empty() && s.find(" ") != string::npos)
{
int temp = stoi(s.substr(0, s.find(" ")));
// 최대 최소 비교
if (mxValue < temp)
mxValue = temp;
if (mnValue > temp)
mnValue = temp;
s.erase(0, s.find(" ") + 1);
}
// 마지막 남은 숫자 비교
int temp = stoi(s.substr(0, s.find(" ")));
if (mxValue < temp)
mxValue = temp;
if (mnValue > temp)
mnValue = temp;
// 최소값 최대값 순으로 결과 문자열에 추가
answer += to_string(mnValue);
answer += " ";
answer += to_string(mxValue);
return answer;
}
728x90
반응형
'코딩테스트 > 프로그래머스 (Lv. 2)' 카테고리의 다른 글
[프로그래머스/C++ 문제 풀이] Lv. 2 - 최솟값 만들기 (0) | 2024.08.19 |
---|---|
[프로그래머스/C++ 문제 풀이] Lv. 2 - 올바른 괄호 (0) | 2024.08.19 |
[프로그래머스/C++ 문제 풀이] Lv. 2 - 당구 연습 (0) | 2024.08.13 |
[프로그래머스/C++ 문제 풀이] Lv. 2 - 빛의 경로 사이클 (0) | 2024.08.12 |
[프로그래머스/C++ 문제 풀이] Lv. 2 - [PCCP 기출문제] 3번 / 아날로그 시계 (0) | 2024.08.11 |