본문 바로가기
c++/프로그래머스

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

by ilp 2024. 1. 13.
반응형

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr



#include <string>
#include <vector>

using namespace std;

vector<string> solution(string my_string) {
    vector<string> answer;
    string temp="";
    
    for(int i=0;i<my_string.size();i++){
        if(my_string[i]==' '){
            if(temp!=""){
                answer.push_back(temp);
                temp="";
            }
        }
        else{
            temp+=my_string[i];
        }
    }
    if(temp!=""){
        answer.push_back(temp);
        temp="";
    }
    
    return answer;
}

answer은 결과를 저장할 문자열 벡터이다.

temp는 임시 문자열로, 공백이 나타날 때까지의 문자들을 저장한다.

my_string을 처음부터 끝까지 순회한다.(i)

my_strign[i]가 ' '(공백) 이라면

  • temp가 비어있지 않다면
  • temp를 answer에 추가하고 temp를 비운다.

공백이 아니라면

  • temp에 my_string[i]를 추가한다.

 

for문이 끝나고

temp가 비어있지 않다면

answer에 temp를 넣어주고 temp를 비운다.

이 프로그램은 주어진 문자열을 공백 문자를 기준으로 나눠서 각각의 부분 문자열순서대로 vector에 저장한다.

예를들어, "hello world"라는 문자열이 있으며 "hello"와 "world"라는 두 개의 문자열을 벡터에 저장하고 반환한다.

 

반응형