[프로그래머스] [Level 2] 최댓값과 최솟값 (C++)

[프로그래머스] [Level 2] 최댓값과 최솟값 (C++)

Tags
PS
프로그래머스
Published
February 17, 2025
Author
JH
태그
종류
학문 분야

문제 설명

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

제한 조건

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

입출력 예

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

풀이

Level 2 문제답게 어려운 문제는 아니다.
다만, C++에서 문자열을 공백으로 구분지어 자르는 방법에 대해 새로 알게된 것이 있어 정리를 해보고자 한다.
바로 stringstream을 이용하는 것인데, #include <sstream>을 선언하고 사용해야 한다.
자세한 내용은 아래 링크에서 확인할 수 있다…
#include <string> #include <vector> #include <sstream> using namespace std; string solution(string s) { string answer = ""; stringstream ss(s); string token; int min = 1000000000, max = -1000000000; while(ss >> token) { int number = stoi(token); if(number < min) { min = number; } if(number > max) { max = number; } } answer += to_string(min); answer += " "; answer += to_string(max); return answer; }