제주 탈출 일지

[C++] 프로그래머스 레벨 1 - 같은 숫자는 싫어 본문

코딩 테스트

[C++] 프로그래머스 레벨 1 - 같은 숫자는 싫어

귀건 2020. 10. 27. 23:50
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/12906?language=cpp#

 

코딩테스트 연습 - 같은 숫자는 싫어

배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은

programmers.co.kr

테스트 케이스 17이 {1, 0, 0, 0}인데 전부 같아버려서 {1}만 출력되는 경우가 있었다. 그 경우를 고치기 위해 반복자의 다음 위치가 end()를 가리키고, 이전과 현재값이 같다면 현재 값을 answer 벡터에 추가하도록 하였다.

#include <vector>
#include <iostream>

using namespace std;

vector<int> solution(vector<int> arr) 
{
    vector<int> answer;
    vector<int>::iterator iter;
    for(iter = arr.begin(); iter != arr.end(); ++iter){
    	if((iter + 1) == arr.end() && (*iter) == *(iter-1))
    	{
    		answer.push_back(*iter);
    	}
        else if(*iter == *(iter + 1))
        {
            continue;
        }
        else{
            answer.push_back(*iter);
        }
    }
    
    return answer;
}

int main()
{
	vector<int> arr = {1, 0, 0, 0};
	
	solution(arr);
	
	
	return 0;
}
728x90
반응형
Comments