풀이
-없는 숫자 더하기
#include <string>
#include <vector>
#include <algorithm> // find
using namespace std;
int solution(vector<int> numbers) {
int answer = 0;
vector<int> allnum = {1,2,3,4,5,6,7,8,9};
for(int i=0; i<allnum.size(); i++){
if(find(numbers.begin(), numbers.end(),allnum[i]) == numbers.end())
answer += allnum[i];
}
return answer;
}
-내적
#include <string>
#include <vector>
using namespace std;
int solution(vector<int> a, vector<int> b) {
int answer = 0;
for(int i=0; i<a.size(); i++){
answer += (a[i] * b[i]);
}
return answer;
}
다른사람 풀이
-없는 숫자 더하기
#include <bits/stdc++.h>
using namespace std;
int solution(vector<int> numbers) {
return 45 - accumulate(numbers.begin(), numbers.end(), 0);
}
-내적
#include <vector>
#include <numeric>
using namespace std;
int solution(vector<int> a, vector<int> b) {
return inner_product(a.begin(),a.end(),b.begin(),0);
}
이렇게 유용한 함수가 있었다니...!
내 3~4줄인 내 코드를 한 줄로 줄일 수 있었고, 변수도 따로 만들지 않아도 되었다.
유용하게 사용할 수 있을듯 하니 꼭 기억해둘 것!
사용하기 위해선 <numeric> 헤더 파일을 추가해야 한다.
-accumulate : vecter에 있는 값만을 더한다.
-innuer_product : 두 입력 시퀀스의 내적을 계산하는 알고리즘으로 기본적으로는 +와 *을 사용한다. 두 입력 시퀀스의 값은 위치의 값을 서로 곱한 값을 모두 더한 것이 최종 계산 값이 된다. 주의해야 할 것은 두 입력 시퀀스의 구간 중 두 번째 시퀀스는 첫 번째 시퀀스 구간보다 크거나 같아야 한다.
https://gamdekong.tistory.com/80
'Algorithm > Programers - C++' 카테고리의 다른 글
[프로그래머스]완전탐색 - 모의고사 (0) | 2022.01.27 |
---|---|
[프로그래머스]정렬 - K번째수 (0) | 2022.01.26 |
[프로그래머스] 소수만들기 (0) | 2022.01.25 |
[프로그래머스]로또의 최고 순위와 최저 순위 (0) | 2022.01.23 |
[프로그래머스] 해시1-완주하지 못한 선수 (0) | 2022.01.01 |