본문 바로가기

Software Engineering/Algorithm

[Programmers Lv. 2] C++: 최댓값과 최솟값

프로그래머스 Lv.2에 있는 "최댓값과 최솟값" 문제에 대한 풀이 및 탐구에 대한 기록.

정답률: 79%

목   차

     

    문제 분석

    Input: 

    • s: 공백으로 구분된 숫자들을 가진 문자열.

    Output: 

    • anwer: (최솟값) + " " + (최댓값)

    문자열을 받아 최소, 최대를 출력하기.

    문제 풀이

    초안

    #include <string>
    #include <vector>
    #include <sstream>
    
    using namespace std;
    
    string solution(string s) {
        vector<int> intArr;
        stringstream ss(s);
        string token;
    
        while (getline(ss, token, ' ')) {
            intArr.push_back(stoi(token));
        }
    
        int max = intArr[0];
        int min = intArr[0];
    
        for (int num : intArr) {
            if (max < num) max = num;
            if (min > num) min = num;
        }
    
        string answer = to_string(min) + " " + to_string(max);
        return answer;
    }

    느낀 점

    이번 답안은 다른 사람의 풀이와 챗GPT를 통틀어 돌아봤을 때, 굳이 수정할 필요를 느끼지 못했다. 여기서 더 개선할 여지가 있다면 algorithm 을 include하는 방식도 있겠지만, 이것은 알고리즘 라이브러리 의존성을 낮추고 스스로 연습하기 위해 일부러 제외한 것이다.