2023. 10. 25. 13:48, 알고리즘/프로그래머스
https://school.programmers.co.kr/learn/courses/30/lessons/12906
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(vector<int> arr)
{
vector<int> answer;
int t=-1;
for(auto c: arr){
if(t!=c){
t=c;
answer.push_back(c);
}
}
return answer;
}
원소들을 순회하면서 요건을 충졸할때에만 answer에 넣어주는 식으로 구현했다.
다른 사람의 풀이중에서, 가장 추천을 많이 받은것을 확인해보니까,
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> arr)
{
arr.erase(unique(arr.begin(), arr.end()),arr.end());
vector<int> answer = arr;
return answer;
}
이런식으로 중복된 원소를 제거하는 방법으로 erase와 unique를 사용하는 풀이를 한게 가장 많은 추천을 받았다.
이 방법 분명 여러번 사용해본 방법인데 이 방법을 떠올리지 못하다니 조금 아쉽다. 다음에는 한번 이 방법도 같이 떠올려 보도록 하자.
위 문제의 경우 효율성까지 체크하는데, 효율성 부분에서는 차이는 없다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 Lv 2. 42586 c++ 기능개발 (시간 초과에 빠지는 경우 참고 사항) **추가학습 필요** (0) | 2023.10.26 |
---|---|
프로그래머스 Lv 2. 12909 c++ 올바른 괄호 (0) | 2023.10.26 |
프로그래머스 Lv 2. c++ 18118 요격시스템 (0) | 2023.10.25 |
코딩테스트 입문 Lv 0 100문제 해결 완료. (0) | 2023.10.12 |
Lv 0. 다음에 올 숫자 (0) | 2023.10.12 |
Comments, Trackbacks