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

2020. 9. 26. 16:42·알고리즘/Programmers

1차원 배열이 주어지면 그 수에서 두 개를 뽑아서 더해주면 된다. 단 중복을 허용하지 않고 오름차순으로 정렬해야 한다.

 

제한 사항을 보면 numbers의 길이가 100 이하이다. 따라서 이중 포문으로 해줘도

\(O(N^2)\)의 시간복잡도를 가지기에 중복을 방지하는 stl set을 사용해서 

자기 자신인 i == j 인 경우를 제외하고 전부 넣어준다.

 

이후에 반복문을 모두 돌았다면 answer에 삽입해주면 된다.

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <string>
#include <vector>
#include <set>
using namespace std;
 
vector<int> solution(vector<int> numbers) {
    vector<int> answer;
    set<int> s;
    
    int n = numbers.size();
    for (int i = 0; i < n; ++i) {
        for (int j = 0; j < n; ++j) {
            if (i == j) continue;
            s.insert(numbers[i] + numbers[j]);
        }
    }
    for (int i : s) answer.emplace_back(i);
    
    return answer;
}
Colored by Color Scripter
cs

'알고리즘 > Programmers' 카테고리의 다른 글

[프로그래머스 C++] 카카오프렌즈 컬러링북  (0) 2020.09.28
[프로그래머스 C++] 소수 찾기  (0) 2020.09.27
[프로그래머스 C++] 완주하지 못한 선수  (0) 2020.09.26
[프로그래머스 C++] 모의고사  (0) 2020.09.26
[프로그래머스 C++] 크레인 인형뽑기 게임  (0) 2020.09.26
'알고리즘/Programmers' 카테고리의 다른 글
  • [프로그래머스 C++] 소수 찾기
  • [프로그래머스 C++] 완주하지 못한 선수
  • [프로그래머스 C++] 모의고사
  • [프로그래머스 C++] 크레인 인형뽑기 게임
khyu2
khyu2
  • khyu2
    dev log
    khyu2
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 알고리즘
        • BOJ
        • Programmers
        • Algorithm
        • SWEA
      • 개발
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    피보나치 수
    이분 탐색
    트리
    냅색
    크루스칼
    팰린드롬
    시뮬레이션
    소수
    구현
    MST
    dp
    dfs
    GREEDY
    프로그래머스
    BFS
    SWEA
    유니온 파인드
    큐
    분할 정복
    코딩테스트 연습
    이분탐색
    다익스트라
    완전탐색
    우선순위 큐
    조합
    피사노 주기
    행렬 제곱
    알고리즘
    BOJ
    완전 탐색
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
khyu2
[프로그래머스 C++] 두 개 뽑아서 더하기
상단으로

티스토리툴바