https://github.com/GyungSikHan/AlgorithmTest/tree/main/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4/2/12939.%E2%80%85%EC%B5%9C%EB%8C%93%EA%B0%92%EA%B3%BC%E2%80%85%EC%B5%9C%EC%86%9F%EA%B0%92

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

string solution(string s) {
    string answer = "";
    vector<int> v;
	bool b{};
    string temp{};
    for (int i = 0; i < s.size(); i++)
    {
        if (s.at(i) == ' ')
        {
            v.push_back(stoi(temp));
            temp = "";
        }
        else
            temp += s.at(i);
    }
	v.push_back(stoi(temp));
    sort(v.begin(), v.end());

    string mi = to_string(v[0]);
    string ma = to_string(v[v.size() - 1]);
    answer = mi + " " + ma;

    return answer;
}
  • Vector를 활용하지 않고 mi, max를 저장하는 식으로 풀었는데 테스트 케이스는 통과했지만 채점에서는 모두 세그먼트오류였나? 가 뜨면서 문제풀이를 수정해야했다
  • for문안에 if문이 많아 거기서 생각지 않은 예외가 생겨서 그런것 같아 if문을 최대한 줄이고 string안에 숫자들을 vector에 저장하여 해결하려했다
  • for문안에서 현재 문자가 공백 문자가 아니라면 string 변수에 누적해 저장하고, 공백문자일때 현재 temp를 stoi를 통해 정수로 변경해여 vector안에 저장해준다
  • 이 과정을 거치고, 마지막 숫자가 vector에 저장이 안되므로, for문이 끝나고 vector안에 temp를 정수로 변경해 저장해준다
  • 그 후 sort를 통해 오름차순 정렬을 해주고, min, max를 문자열로 저장할 변수에 to_string을 통한 형변환을 이용해vector의 처음 값과 마지막 값을 저장해, 이 값들을 answer 에 저장해주면 쉽게 풀리는 문제이다

'코딩 태스트 > 문제풀이' 카테고리의 다른 글

이진 변환 반복하기 - 70129  (0) 2025.03.11
JadenCase 문자열 만들기 - 12951  (0) 2025.03.11
괄호 추가하기  (0) 2025.02.05
뮤탈리스크  (0) 2025.02.05
인구이동(x)  (0) 2025.01.20