#1. 문제
#2. 풀이
1. istringstream, ostringstream
#include <sstream>
istringstream(입력 문자열 스트림): 문자열로부터 데이터를 읽어오는 입력 스트림 클래스입니다. 문자열을 입력 스트림으로 취급하여 다양한 데이터 타입으로 파싱 할 수 있습니다.
ostringstream(출력 문자열 스트림): 데이터를 문자열로 출력하는 출력 스트림 클래스입니다. 다양한 데이터 타입을 문자열로 변환하여 하나의 문자열로 조합할 수 있습니다.
2. istringstream, ostringstream 활용
- 주어진 문자열 s를 istringstream 객체에 넣어줍니다.
- while 문을 돌며 문자열 s를 파싱한 결과를 임시 문자열에 넣어줍니다.
- 임시 문자열을 int로 변환하고, 최댓값과 최솟값 업데이트 작업을 진행합니다.
- 마지막으로, 최소값과 최댓값을 문자열로 변환하기 위해 ostringstream(출력 문자열 스트림)를 활용하고, oss.str()을 반환해 줍니다.
#3. 코드
/*
@링크: https://school.programmers.co.kr/learn/courses/30/lessons/12939
@문제: Level2, 최댓값과 최솟값
@설명
1. stringstream 헤더, istringstream
*/
#include <string>
#include <sstream>
#include <algorithm>
#include <limits>
using namespace std;
string solution(string s) {
istringstream iss(s);
string token;
int minVal = numeric_limits<int>::max();
int maxVal = numeric_limits<int>::min();
while (iss >> token) {
//@공백이 아닌 '-' 혹은 숫자
int num = stoi(token);
//@최소 값
minVal = min(minVal, num);
//@최대 값
maxVal = max(maxVal, num);
}
//@최솟값, 최대값
ostringstream oss;
oss << minVal << ' ' << maxVal;
return oss.str();
}
'문제 풀이 > Programmers 문제 풀이' 카테고리의 다른 글
[Programmers, C++]#Level2_최솟값 만들기, 우선순위 큐, 최소 힙, 최대 힙, 완전 이진 트리 (0) | 2024.09.20 |
---|---|
[Programmers, C++]#Level2_올바른 괄호, 스택, stack (0) | 2024.09.12 |
[Programmers, C++]#Level2_큰 수 만들기, stack 컨테이너, stack, 스택 (0) | 2024.08.28 |
[Programmers, C++]#Level2_다리를 지나가는 트럭, 선형 자료구조, queue 컨테이너, deque 컨테이너 (0) | 2024.08.22 |
[Programmers, C++]#Level2_소수 찾기, 백트래킹, 순열 백트래킹, set, 소수, set 컨테이너 (0) | 2024.08.08 |