-
[codility] PermCheck c++Coding Test/codility 2022. 4. 9. 21:32728x90
- 문제
permutation(순열) 인지 체크하는 문제이다.
- 문제 해결
처음에 생각한 풀이는 75%가 나왔다.
1. A배열의 합 구하기
2. A배열의 크기로 A.size() 일 때 순열의 합 구하기
3. 1,2 비교하기
#include <string> #include <algorithm> #include <vector> #include <iostream> #include <numeric> int solution3(std::vector<int> &A) { int len = A.size()+1; long sumP = len * (len + 1) / 2; long sumA = std::accumulate(A.begin(), A.end(), 0); if (sumP != sumA) return 0; return 1; } #define PermCheck #ifdef PermCheck int main() { std::vector<int> nVec = {4,1,3,2}; std::cout << solution3(nVec); return 0; } #endif
다른 방법을 생각했다.
내가 어렵게 생각한거 같다.
오히려 쉽게 반복문으로 하니 100%가 나왔다...!
#include <string> #include <algorithm> #include <vector> #include <numeric> #include <iostream> int solution(std::vector<int> &A) { sort(A.begin(), A.end()); for (int i = 1; i <= A.size(); i++) { if (A.at(i - 1) != i) return 0; } return 1; } #define PermCheck #ifdef PermCheck int main() { std::vector<int> nVec = {4,1,3,2}; std::cout << solution4(nVec); return 0; } #endif
728x90'Coding Test > codility' 카테고리의 다른 글
[codility] MaxCounters c++ (0) 2022.04.10 [codility] MaxCounters c++ (0) 2022.04.10 [codility] FrogRiverOne c++ (0) 2022.04.09 [codility] TapeEquilibrium c++ (0) 2022.04.09 [codility] PermMissingElem c++ (0) 2022.04.09