반응형
#INFO
문제 이름 : 같은 숫자는 싫어
난이도 : LEVEL1
문제 출처 : 코딩테스트 연습 - 같은 숫자는 싫어 | 프로그래머스 (programmers.co.kr)
#SOLVE
_1 for loop 풀이
단순 for 반복문을 이용한 풀이이다.
i번째 원소와 i-1번째 원소가 다를 경우 answer 벡터에 i번째 원소를 푸시하는 방식이다. 단, arr의 첫 번째 원소는 미리 answer 벡터에 푸시해 두어야 한다.
#include <vector>
#include <iostream>
using namespace std;
vector<int> solution(vector<int> arr)
{
vector<int> answer;
answer.push_back(arr[0]);
for(int i = 1; i < arr.size(); i++){
if(arr[i-1] != arr[i]) answer.push_back(arr[i]);
}
return answer;
}
_2 unique function 풀이
<Algorithm> 헤더에 포함된 unique 함수를 사용하면 간단하게 풀이할 수 있다.
unique 함수는 자료구조 내에서 연속된 원소를 제거해준다.
#include <vector>
#include <iostream>
#include <algorithm> // to use unique
using namespace std;
vector<int> solution(vector<int> arr)
{
// unique begin ~ end 연속 중복 원소 제거
// erase 중복되는 지점 첫 이터레이터 ~ arr.end(마지막 이터레이터) 제거
arr.erase(unique(arr.begin(), arr.end()), arr.end());
vector<int> answer = arr;
return answer;
}
반응형
'Archive2 > ProblemSolving' 카테고리의 다른 글
[프로그래머스] LEVEL1 : 신규 아이디 추천 C++ (0) | 2022.06.04 |
---|---|
[프로그래머스] LEVEL1 : 신고 결과 받기 C++ (0) | 2022.05.31 |
[프로그래머스] LEVEL1 로또의 최고 순위와 최저 순위 C++ (0) | 2022.05.22 |
[프로그래머스] 코딩테스트 LEVEL1 키패드 누르기 C++ (0) | 2022.05.18 |
[프로그래머스] 코딩테스트 LEVEL1 정수 제곱근 판별 C++ (0) | 2022.05.16 |