반갑습니다!

[프로그래머스] 두 개 뽑아서 더하기 본문

알고리즘 문제 풀이

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

김덜덜이 2020. 9. 22. 19:34
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr

풀이

numbers의 길이가 100 이하이므로 완전 탐색으로 해결할 수 있다. 숫자의 중복이 있을 수 있으므로 Set을 사용해서 해결했다.

코드

C++

#include <string>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;

vector<int> solution(vector<int> numbers) {
    set<int> s;
    for(int i=0; i<numbers.size()-1; i++)
        for(int j=i+1; j<numbers.size(); j++)
            s.insert(numbers[i] + numbers[j]);

    vector<int> answer;
    for(int sum : s)
        answer.push_back(sum);
    sort(answer.begin(), answer.end());
    return answer;
}

Python3

def solution(numbers):
    result = set()
    n = len(numbers)
    for i in range(n - 1):
        for j in range(i + 1, n):
            result.add(numbers[i] + numbers[j])
    answer = list(result)
    answer.sort()
    return answer

'알고리즘 문제 풀이' 카테고리의 다른 글

[백준] 1715 카드 정렬하기  (0) 2020.09.23
[백준] 2012 등수매기기  (0) 2020.09.23
[프로그래머스] 삼각 달팽이  (0) 2020.09.22
[백준] 18428 감시 피하기  (0) 2020.09.22
[백준] 1439 뒤집기  (0) 2020.09.20