제주 탈출 일지

[C++] 프로그래머스 레벨 1 - 두 개 뽑아서 더하기 본문

코딩 테스트

[C++] 프로그래머스 레벨 1 - 두 개 뽑아서 더하기

귀건 2020. 10. 23. 12:58
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/68644

 

코딩테스트 연습 - 두 개 뽑아서 더하기

정수 배열 numbers가 주어집니다. numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return 하도록 solution 함수를 완성해주세요. 제한

programmers.co.kr

 

vector에서 중복없는 수를 제거하기 위해서는 정렬을 해야하고, sort는 algorithm 헤더에서 반복자의 구간을 주면 된다.

그 후 erase와 unique함수를 사용하여 제거한다.

//answer.erase(unique(answer.begin(),answer.end()), 형태와 같이 하면 된다.

 

m.blog.naver.com/PostView.nhn?blogId=withham1&logNo=221102099316&proxyReferer=https:%2F%2Fwww.google.com%2F

 

[C++] unique 함수를 이용한 vector 중복 제거

unique 함수를 사용하기 위해서는 "algorithm" 헤더 파일이 필요합니다. unique 함수는 vector 배열에서 중...

blog.naver.com

참고한 포스팅이다.

 

#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(); i++)
    {
        for(int j = 0; j < numbers.size(); j++)
        {  
            if(i == j)
                continue;
            else{
                answer.push_back(numbers[i] + numbers[j]) ;
            }
         
        }
    }
    
    sort(answer.begin(), answer.end());
    //v.erase(unique(v.begin(), v.end()), v.end());
    answer.erase(unique(answer.begin(),answer.end()), answer.end());
    
    
    
    return answer;
}
728x90
반응형
Comments