코딩 테스트
[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
반응형