프로그래머스 - 최댓값과 최솟값

2022. 9. 15. 16:46코딩 공부 연습

반응형

며칠전에 strtok 쓰는걸 연습한적이 있는데, 오늘 푼 문제도 마침 문자열을 잘라내는 거였다. 그새 까먹어서 또 고생을 했다. 멍청한 만큼 여러번 풀어봐야 한다ㅋㅋ 며칠뒤 하면 또 까먹을게 틀림없다. 파싱 부분이 합쳐서 10줄도 안되는데,,.  

c++ 이라서 타입 변화를 휙휙 해주어야 했다. 문자열을 잘라서 숫자로 바꾸고(atoi) 최소, 최대값을 찾은 후 다시 이를 string으로 바꾸어야 했다. atoi 를 위해서 캐릭터 배열로 string을 바꾸어주고(strcpy, c_str() 사용), 정수를 다시 string으로 바꾸기 위해 to_string() 을 사용해주었다.

피신때처럼 itoa, atoi를 만들어서 해도 어떻게든 하긴 할거같다. 문제가 성가실뿐!

 

#include <string>
#include <vector>
#include <iostream>
#include <cstring>
#include <algorithm>

using namespace std;

string solution(string s) {
    string answer = "";
    vector <string> parsed;
    vector <int> num_list;
    char tmp[s.length()];
    strcpy(tmp, s.c_str());
    char *ptr = strtok(tmp, " ");
    while(ptr !=NULL)
    {
        int to_num = atoi(ptr);
        num_list.push_back(to_num);
        ptr = strtok(NULL, " ");
    }
    sort(num_list.begin(), num_list.end());
    string minval = to_string(num_list[0]);
    string maxval = to_string(num_list[num_list.size()-1]);
    answer += minval;    answer += " ";    answer += maxval;

    return answer;
}

17956 등! -> 만등안에 들어가볼 생각이당ㅋㅋㅋ