728x90
반응형
SMALL
https://school.programmers.co.kr/learn/courses/30/lessons/12906
문제
배열 arr가 주어집니다. 배열 arr의 각 원소는 숫자 0부터 9까지로 이루어져 있습니다. 이때, 배열 arr에서 연속적으로 나타나는 숫자는 하나만 남기고 전부 제거하려고 합니다. 단, 제거된 후 남은 수들을 반환할 때는 배열 arr의 원소들의 순서를 유지해야 합니다. 예를 들면,
arr = [1, 1, 3, 3, 0, 1, 1] 이면 [1, 3, 0, 1] 을 return 합니다.
arr = [4, 4, 4, 3, 3] 이면 [4, 3] 을 return 합니다.
배열 arr에서 연속적으로 나타나는 숫자는 제거하고 남은 수들을 return 하는 solution 함수를 완성해 주세요.
알고리즘
1. 첫번째 인덱스의 숫자를 a에 저장한다.
2. 반복문을 통해서 모든 배열의 원소를 확인한다.
3. 처음 저장한 숫자와 바로 오는 인덱스를 비교하여 다른 경우에 answer백터에 새로나온 숫자를 저장한다.
4. 새로 나온 숫자를 a에 저장해준다.
5. a를 기준으로 또 다시 바로 오는 인덱스를 비교하여 같은지 다른지 확인한다.
코드
#include <vector>
#include <iostream>
#include <unordered_map>
using namespace std;
vector<int> solution(vector<int> arr)
{
vector<int> answer;
int a=arr[0];
for(int i=0; i<arr.size(); i++){
if(a!=arr[i]){
answer.push_back(a);
a=arr[i];
}
}
answer.push_back(arr[arr.size()-1]);
return answer;
}
반응형
LIST
'코딩테스트 연습' 카테고리의 다른 글
프로그래머스 프로 (1) | 2024.10.18 |
---|---|
프로그래머스 올바른 괄호 (0) | 2024.10.17 |
프로그래머스 기능개발 (0) | 2024.10.17 |
프로그래머스 섬연결하기 (1) | 2024.10.16 |
프로그래머스 구명보트 (0) | 2024.10.16 |