Code
#include <iostream>
#include <vector>
#include <algorithm>
int solution(vector<int> &A) {
// write your code in C++14 (g++ 6.2.0)
sort(A.begin(), A.end());
int compare = 1;
for(int i=0;i<A.size();i++){
if(A[i] != compare){
return 0;
}
compare ++;
}
return 1;
}
Result
<해결아이디어>
우선 벡터를 정렬한다.
int compare = 1;으로 초기화 한 후 compare를 하나씩 증가시키면서
A[i]값과 일치하는지 확인한다.
즉, 벡터A가 1,2,3,4.. 순인지 확인한다.
compare는 1부터 하나씩 증가시키는데 compare != A[i]일 경우 A[i]가 차례대로 증가하지 않았다는 뜻이므로
return 0;을 한다.
하지만 for문을 다 돌았다는 것은 중간에 return되지 않았다는 뜻이므로 permutation임을 뜻한다. 따라서 return 1;을 해준다.
<기억하자>
return;
cout<<"hi";
return은 해당 함수를 종료한다.
따라서 다음 문장인 hi를 출력하는 코드는 실행되지 않는다.
'1일 1코딜리티' 카테고리의 다른 글
[ Lesson 04_3 ] MissingInteger (0) | 2020.03.07 |
---|---|
[ Lesson 04_2 ] MaxCounters (0) | 2020.03.01 |
[ Lesson 04_1 ] FrogRiverOne (0) | 2020.03.01 |
[ lesson 03_3 ] TapeEquilibrium (0) | 2020.02.27 |
[ Lesson 03_2 ] PermMissingElem (0) | 2020.02.27 |