728x90
문제 설명
배열 arr가 주어진다.
배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있다.
이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 한다.
단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 한다.
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수 들을 return하는 solution을 완성하라.
제한 사항
배열 arr의 크기 : 1,000,000 이하의 자연수
배열 arr의 원소의 크기 : 0보다 크거나 같고 9보다 작거나 같은 정수
입출력 예
arr | answer |
[1,1,3,3,0,1,1] | [1,3,0,1] |
[4,4,4,3,3] | [4,3] |
코드 풀이
vector형태로 데이터를 기입하되, 맨 마지막 숫자가 겹칠경우, push또는 emplace하지 않으면 된다.
정리된 값을 answer로 반환한다.
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> arr)
{
vector<int> answer;
for(auto& def : arr)
if(answer.empty() || answer.back() != def)
answer.emplace_back(def);
return answer;
}
비어있을 경우, 일단 넣고본다.
아닐때, 뒷값을 확인하고, 같지 않을경우에만 값을 넣어준다.
728x90
'코딩테스트 문제 풀이 > 스텍&큐' 카테고리의 다른 글
다리를 지나는 트럭 (0) | 2024.02.14 |
---|---|
프로세스 (0) | 2024.02.08 |
올바른 괄호 (0) | 2024.01.30 |
기능개발 (0) | 2024.01.19 |
더 맵게 (0) | 2024.01.11 |