리스트 자르기

Subin·2024년 8월 13일

Algorithm

목록 보기
18/69

[내 풀이]

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int n, vector<int> slicer, vector<int> num_list) {
    vector<int> answer;

    int a = slicer[0];
    int b = slicer[1];
    int c = slicer[2];

    if(n == 1)
    {
        for(int i = 0; i<= b; i++)
        {
            answer.push_back(num_list[i]);
        }
    }
    else if(n==2)
    {
        for(int i = a; i< num_list.size(); i++)
        {
            answer.push_back(num_list[i]);
        }
    }
    else if(n==3)
    {
        for(int i = a; i<= b; i++)
        {
            answer.push_back(num_list[i]);
        }
    }
    else if(n==4)
    {
        for(int i = a; i<= b; i += c)
        {
            answer.push_back(num_list[i]);
        }
    }

    return answer;
}

[다른 사람 풀이]

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int n, vector<int> slicer, vector<int> num_list) {

    int a = slicer[0];
    int b = slicer[1];
    int c = slicer[2];
    switch(n)
    {
        case 1: return vector<int>(num_list.begin(), num_list.begin()+b+1);
        case 2: return vector<int>(num_list.begin()+a, num_list.end());
        case 3: return vector<int>(num_list.begin()+a, num_list.begin()+b+1);
        case 4: {
            vector<int> answer;
            for(int i = a; i <= b; i += c)
                answer.push_back(num_list[i]);
            return answer;
        }
    }
}
  • if문 대신 switch를 사용할 수 있다.
  • for문 대신 vector의 기능을 활용하자 (begin(), end())
profile
성장하며 꿈꾸는 삶을 살아가고 있는 대학생입니다😊

0개의 댓글