프로그래머스 - lv1 두 개 뽑아서 더하기
두 개 뽑아서 더하기
문제는 프로그래머스에서 확인 할 수 있다.
✔ 접근방법
중복이 없는 자료구조를 사용하기위해 SET을 사용한다.
- 서로 다른 인덱스의 값을 더한다.
- set에 넣는다. 이때 중복은 허용하지 않는다.
✔ 코드
#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>
#include <set>
#include <vector>
using namespace std;
vector<int> solution(vector<int> numbers) {
set<int> result;
vector<int> answer;
set<int>::iterator it;
for( int i=0; i<numbers.size(); i++){
for ( int j=0; j<numbers.size(); j++){
if( i != j ){
result.insert(numbers[i] + numbers[j]);
}
}
}
for( it=result.begin(); it!=result.end(); it++ ){
answer.push_back(*it);
}
// for ( auto v_it = answer.begin(); v_it != answer.end(); v_it++ ) {
// printf("%d ", *v_it);
// }
return answer;
}
int main(void){
vector<int> numbers = {2,1,3,4,1};
solution(numbers);
return 0;
}
☝ 팁
- 중복을 허용하지 않는 자료구조 set을 활용
- iterator의 활용
- auto 키워드를 사용하면, 컴파일러가 값을 판단하여 타입을 정해준다. iter 변수를 사용할 때 활용
for ( auto s_it = result.begin(); s_it != result.end(); s_it++ ) { printf("%d ", *s_it); }
👍 참고 사이트
Author And Source
이 문제에 관하여(프로그래머스 - lv1 두 개 뽑아서 더하기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@aszxvcb/프로그래머스-lv1-두-개-뽑아서-더하기저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)