programmers 2단계 최댓값 최소값
Post

programmers 2단계 최댓값 최소값

[level 2] 최댓값과 최솟값 - 12939

문제 링크

성능 요약

메모리: 3.59 MB, 시간: 0.10 ms

구분

코딩테스트 연습 > 연습문제

채점결과

Empty

문제 설명

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

제한 조건
  • s에는 둘 이상의 정수가 공백으로 구분되어 있습니다.
입출력 예
sreturn
"1 2 3 4""1 4"
"-1 -2 -3 -4""-4 -1"
"-1 -1""-1 -1"
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
#include <string>
#include <vector>
#include <algorithm>
#include <sstream>
#include <iostream>

using namespace std;

// 1. 공백으로 구분 split 하기
// 2. 배열이나 list에 넣기.
// 3. sort 하기.

// 음수 조건문 붙여주기.
bool compare(string a, string b) {
  //이름이 같으면, 나이가 적은순
        return stoi(a) < stoi(b);
}

string solution(string s) {

    string result;
    stringstream stream(s);

    // 공백 분리 결과를 저장할 배열
    vector<string> words;

    string word;
    // 스트림을 한 줄씩 읽어, 공백 단위로 분리한 뒤, 결과 배열에 저장
    while (getline(stream, word, ' ')) {
        words.push_back(word);
    }
    
    sort(words.begin(), words.end(),compare);

    cout << words.front() << words.back();

    result = words.front() + " " + words.back();
    return result;
}

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges