無限

몸은 현실 마음은 낭만

Develop & Journal

코딩테스트 연습

프로그래머스 같은 숫자는 싫어

알파 조 2024. 10. 17. 21:56
728x90
반응형
SMALL

https://school.programmers.co.kr/learn/courses/30/lessons/12906

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제

배열 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