본문 바로가기
코딩테스트 준비/프로그래머스

[프로그래머스][C++][0단계] 왼쪽 오른쪽

by 스테디코디스트 2023. 11. 2.
반응형

<문제 소개>


<소스 코드>

#include <string>
#include <vector>

using namespace std;

vector<string> solution(vector<string> str_list) 
{
    vector<string> answer;
    
    for(int i = 0; i < str_list.size(); i++)
    {
        if(str_list[i] == "l")
        {
            for(int j = 0; j < i; j++)
            {
                answer.push_back(str_list[j]);
            }
            break;
        }
        
        if(str_list[i] == "r")
        {
            for(int j = i + 1; j < str_list.size(); j++)
            {
                answer.push_back(str_list[j]);
            }
            break;
        }
    }
    
    return answer;
}

<풀이과정>

1. 주어진 벡터 str_list를 첫 원소부터 반복하면서 "l" 이나 "r"을 찾는다.

2. 현재 원소가 "l"인 경우 0번째 인덱스부터 i - 1번째 인덱스까지 반복하며 answer에 원소를 넣어준다. 즉 "l" 이전의 원소까지 answer에 넣어준다.

3. 마찬가지로 "r"이 나왔을 때는 i+1번째 인덱스부터 마지막 인덱스까지의 원소들을 answer에 넣어준다.

4. 두 경우 모두 answer에 값을 넣어준 뒤 break를 이용해 반복문을 종료하고, answer을 리턴해준다.


<코멘트>

처음에 r이 나왔을 때는 역순으로 해야되는 줄 알고 했더니 틀렸다.ㅋㅋ

문제를 잘 읽자!


<제출결과>