N

(프로그래머스 C++) 공백으로 구분하기2 본문

프로그래머스 알고리즘/0 & 1단계

(프로그래머스 C++) 공백으로 구분하기2

naeunchan 2025. 7. 24. 13:38
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/181868

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

풀이 1) string 변수 사용

#include <string>
#include <vector>
#include <iostream>

using namespace std;

vector<string> solution(string my_string) {
    vector<string> answer;
    string str = "";
    
    for (auto &i : my_string) {
        if (i == ' ') {
            if (!str.empty())
                answer.push_back(str);
            str = "";
        } else {
            str += i;
        }
    }
    
    if (!str.empty()) {
        answer.push_back(str);
    }
    
    return answer;
}
테스트 1 통과 (0.09ms, 4.21MB)
테스트 2 통과 (0.03ms, 4.21MB)
테스트 3 통과 (0.03ms, 4.19MB)
테스트 4 통과 (0.04ms, 4.13MB)
테스트 5 통과 (0.02ms, 4.2MB)
테스트 6 통과 (0.02ms, 4.21MB)
테스트 7 통과 (0.02ms, 4.17MB)
테스트 8 통과 (0.05ms, 3.7MB)
테스트 9 통과 (0.02ms, 4.21MB)
테스트 10 통과 (0.01ms, 4.21MB)

 

 

풀이 2) bool 변수 사용

#include <string>
#include <vector>

using namespace std;

vector<string> solution(string my_string) {
    vector<string> answer;
    bool is_space = true;

    for (char ch : my_string) {
        if (ch == ' ') {
            is_space = true;
        } else {
            if (is_space) {
                answer.push_back(string(1, ch));
            } else {
                answer.back().push_back(ch);
            }
            is_space = false;
        }
    }

    return answer;
}

 

테스트 1 통과 (0.08ms, 4.16MB)
테스트 2 통과 (0.03ms, 3.67MB)
테스트 3 통과 (0.02ms, 4.28MB)
테스트 4 통과 (0.04ms, 4.27MB)
테스트 5 통과 (0.02ms, 4.16MB)
테스트 6 통과 (0.03ms, 4.21MB)
테스트 7 통과 (0.03ms, 4.14MB)
테스트 8 통과 (0.02ms, 4.21MB)
테스트 9 통과 (0.01ms, 4.21MB)
테스트 10 통과 (0.01ms, 4.2MB)

 

 

Chat GPT 풀이

#include <iostream>
#include <vector>
#include <sstream>
#include <string>

using namespace std;

vector<string> solution(string my_string) {
    vector<string> result;
    istringstream iss(my_string);
    string word;

    while (iss >> word) {
        result.push_back(word);
    }

    return result;
}
테스트 1 통과 (0.11ms, 4.13MB)
테스트 2 통과 (0.03ms, 4.16MB)
테스트 3 통과 (0.02ms, 4.14MB)
테스트 4 통과 (0.06ms, 4.21MB)
테스트 5 통과 (0.03ms, 4.21MB)
테스트 6 통과 (0.03ms, 4.13MB)
테스트 7 통과 (0.03ms, 3.73MB)
테스트 8 통과 (0.03ms, 4.14MB)
테스트 9 통과 (0.02ms, 4.13MB)
테스트 10 통과 (0.02ms, 4.2MB)
 

 

Chat GPT에게 문제만 주고 풀이를 시켜봤다.

내가 생각한 코드가 더 빠르다.

나 Win.

728x90
반응형