본문 바로가기

코딩테스트

프로그래머스_0단계_순서 바꾸기 C++

 

문제풀이: 2번풀이로

뭔가 긴거같아서 최적화해보자 

1번풀이:

#include <string>
#include <vector>

using namespace std;

vector<int> solution(vector<int> num_list, int n) {
    vector<int> answer;
    vector<int> first;
    vector<int> second;
    
    for(int i=0; i<num_list.size();i++)
    {
        if(i<n) 
            second.push_back(num_list[i]);
        else
            first.push_back(num_list[i]);
    }
    
    for(int i=0; i<first.size();i++)
    {
        answer.push_back(first[i]);
    }
    for(int i=0; i<second.size();i++)
    {
        answer.push_back(second[i]);
    }
    
    
    
    return answer;
}

 

2번풀이:

#include <vector>

using namespace std;

vector<int> solution(vector<int> num_list, int n) {
    vector<int> answer;
    
    for(int i = n; i < num_list.size(); ++i) {
        answer.push_back(num_list[i]);
    }
    
    for(int i = 0; i < n; ++i) {
        answer.push_back(num_list[i]);
    }
    
    return answer;
}