알고리즘/백준[BOJ] 오답노트
c++ vector 초기 크기 인자값 문제 - 백준 알고리즘 오답노트 10819
플라즈밍
2019. 2. 2. 23:50
반응형
백준 BOJ 알고리즘 오답노트 - 10819 번
백터의 초기 크기값은 그 값을 보장하지 못한다. !!
백터를 만들때 인자값으로 5를 넘기면 크기가 5인 백터가 만들어진다고 배웠는데
막상 해보니까 크기가 더 컸다. 7인가?
그래서 백터를 생성할때 크기를 넣지 않고 push_back을 여러번 사용하며 직접 늘리는 방법으로 했다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | //10819 #include<iostream> #include<vector> #include<algorithm> using namespace std; int cal(vector<int>& a){ int result = 0; for(int i = 0; i < a.size()-1; i++){ result+=abs(a[i]-a[i+1]); } return result; } int main(){ int ans = 0 ; int n; cin>>n; vector<int> v; for(int i = 0; i< n ; i++){ int tmp; cin>>tmp; v.push_back(tmp);} sort(v.begin(),v.end()); do{ int tmp = cal(v); // cout<<tmp<<"\n"; if(tmp > ans) ans = tmp; }while(next_permutation(v.begin(),v.end())); cout<<ans<<"\n"; return 0; } //FB1. //실패 - 왜 무한 루프 그지같이 도는거지? //백터에 기본 크기값을 주니까 내가 원하는 n보다 큰 값이 들어가서 다음순열이 그냥 x되버려 | cs |
반응형