코딩테스트/프로그래머스

프로그래머스 1LV C++ 같은 숫자 싫어

sky하연 2024. 3. 17. 17:54
728x90

프로그래머스 1LV C++ 같은 숫자 싫어

문제 정의

-0~9까지 숫자가 무작위로 나열됨

-연속된 같은 수는 하나로 정리

-입력된 순서대로 출력할 것

문제 풀이

입력받은 크기만큼 반복한다.

맨 처음에는 비교할 애가 없음으로 그냥 answer의 맨뒤에 추가한다.

이후부터는 넣어진 애랑 비교하며 같으면 넘어가고 다르면 answer의 맨뒤에 추가한다.

 

num을 사용한 이유는 맨 뒤에 있는 숫자와 현재 arr의 숫자를 비교하기 위해서 이다.

다만 굳이 num을 선언하지 않고 answer.back() 을 사용하면 맨뒤의 숫자와 비교할 수 있기 때문에

굳이 num을 사용할 필요는 없다. 

#include <vector>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> arr) 
{
    int num = 0;
    vector<int> answer;
    
    for(int i = 0; i < arr.size(); i++){
        if(i == 0) answer.push_back(arr.at(i));
        if(arr.at(i) != answer.at(num)){
            num++;
            answer.push_back(arr.at(i));
        }
    }
    return answer;
}
728x90