programmers.co.kr/learn/courses/30/lessons/68644
코딩테스트 연습 - 두 개 뽑아서 더하기
정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한
programmers.co.kr
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(vector<int> numbers) {
vector<int> answer;
for(int i=0; i<numbers.size()-1; i++){
for(int m=i+1; m<numbers.size(); m++){
answer.push_back(numbers[i]+numbers[m]);
}
}
sort(answer.begin(), answer.end());
answer.erase(unique(answer.begin(), answer.end()), answer.end());
return answer;
}
똑같은 수 끼리는 더한다는 말이 없었음-> 문제 잘읽자
벡터에서 중복 제거하는법 erase를 배웠다
1. sort :정렬을 한다 :sort
2. unique : 연속된 중복 원소를 vector의 제일 뒷부분(쓰레기 값)으로 보내버린다
3. erase 중복된 원소들이 모여있는 뒷부분을 삭제한다.
'Programming > Algorithm (C++)' 카테고리의 다른 글
[프로그래머스 1단계] c++ :: 소수 찾기 (에라토스테네스의 체) (0) | 2021.03.01 |
---|---|
[프로그래머스 1단계] c++:: string 클래스의 substr() (0) | 2021.03.01 |
[백준 2579] c++ :: 계단 오르기 (0) | 2021.02.07 |
[백준 9184] c++ :: 신나는 함수 실행 (0) | 2021.02.07 |
[백준 1904] c++ ::01타일 (0) | 2021.02.07 |