-
순열 검사프로그래머스(Programmers) 2018. 8. 20. 09:19반응형
1. 문제
길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다.
1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요.
제한사항
배열의 길이는 10만 이하입니다.
배열의 원소는 10만 이하의 자연수입니다.
입출력 예
arr result
[4, 1, 3, 2] true
[4, 1, 3] false
입출력 예 설명
입출력 예 #1
입력이 [4, 1, 3, 2]가 주어진 경우, 배열의 길이가 4이므로 배열에는 1부터 4까지 숫자가 모두 들어 있어야 합니다. [4, 1, 3, 2]에는 1부터 4까지의 숫자가 모두 들어 있으므로 true를 반환하면 됩니다.
입출력 예 #2
[4, 1, 3]이 주어진 경우, 배열의 길이가 3이므로 배열에는 1부터 3까지 숫자가 모두 들어 있어야 합니다. [4, 1, 3]에는 2가 없고 4가 있으므로 false를 반환하면 됩니다.
2. 알고리즘
키워드 - 구현
3. 코드
12345678910111213141516171819#include <vector>#include <iostream>#include <algorithm>using namespace std;bool solution(vector<int> arr){bool answer = true;sort(arr.begin(), arr.end());const int size = arr.size();for(int i=1; i<size; i++) {if(!(arr[i-1]+1 == arr[i])) {answer = false;}}return answer;}cs 반응형'프로그래머스(Programmers)' 카테고리의 다른 글
Level 1 > 자릿수 더하기 (0) 2018.08.20 나머지 한 점 (0) 2018.08.20 Level 2 > 땅따먹기 (0) 2018.08.20 Level 1> 서울에서 김서방 찾기 (0) 2018.08.08 Level 1 > 문자열 다루기 기본 (0) 2018.08.08