프로그래머스 - 두 개 뽑아서 더하기

imalive77·2020년 10월 1일
0

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> numbers) {
    vector<int> answer;
    int i, j, sum;

    for(i = 0; i < numbers.size() - 1; i++) {
        for(j = i + 1; j < numbers.size(); j++) {
            sum = numbers[i] + numbers[j];
            if(find(answer.begin(), answer.end(), sum) == answer.end())
                answer.push_back(sum);
        }
    }
    
    sort(answer.begin(), answer.end());
    
    return answer;
}
  1. algorithm의 find 함수 사용법 익히기
#include <algorithm>
#include <vector>
using namespace std;

vector<int> solution(vector<int> numbers)
{
    vector<int> answer; answer.clear();
    for(int i=0; i< numbers.size(); i++)
    {
        for(int j=i+1; j<numbers.size(); j++)
        {
            answer.push_back(numbers[i]+numbers[j]);
        }
    }
    sort(answer.begin(), answer.end());
    answer.erase(unique(answer.begin(),answer.end(), answer.end());
    return answer;
}
  1. sort();
    벡터.erase(unique(벡터.begin(),벡터.end(), 벡터.end() );
    중복 날리기 콤보 -> 공식처럼 사용하기!
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<int> solution(vector<int> numbers) {
    vector<int> answer;
    bool check[200] = {false, };
    
    for(int i = 0; i < numbers.size(); i++)
    {
        for(int j = i + 1; j < numbers.size(); j++)
        {
            int sum = numbers[i] + numbers[j];
            
            if(check[sum] == false)
            {
                answer.push_back(sum);
                check[sum] = true;
            }
        }
    }
    
    sort(answer.begin(), answer.end());
    return answer;
}

3]
이런 방법들 다 모를때 수작업으로 하는법.
이런 방법도 익히기.

profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해', '필사적으로 열심히 살아야 할 이유를 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글