smooth waters run deep

1d-1c/Programmers

Level1_두 개 뽑아서 더하기 (C++)

yeon_11 2021. 4. 5. 10:52
 

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

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

programmers.co.kr

 

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

vector<int> solution(vector<int> numbers) {
    vector<int> answer;
    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]);
        }
    }
    
    set<int>::iterator iter;
    for(iter=s.begin(); iter!=s.end(); iter++){
        answer.push_back(*iter);
    }
    
    return answer;
}

 


  • set : 중복X, 정렬되어 저장됨
#include <iostream>
#include <set>
using namespace std;

int main(){
	
    set<int> s; // set만들기
    
    s.insert(10); // set에 원소삽입 -> 중복X,정렬O
    
    set<int>::iterator iter;
    for(iter=s.begin(); iter!=s.end(); iter++){
    	cout<<*iter;
    }
    
    iter = s.find(10); //set에 해당 원소 찾기
    if(iter!=s.end()){
    	cout<<"존재";
    else cout<<"존재X";
    
    return 0;
}