문제 설명
N개의 정수 배열 A가 주어집니다. 단, 중복되는 수는 없으며 연속되지 않는 정수를 찾아내는 문제입니다.
두 가지 상황을 예로 들자면,
A[0] = 4
A[1] = 1
A[2] = 3
A[3] = 2
위 Example의 경우 총 4개(최대 4)의 정수가 주어졌으며 1부터 4까지 모든 수가 존재합니다.
반대의 경우를 봅시다.
A[0] = 4
A[1] = 1
A[2] = 3
위 Example의 경우 총 3개(최대 4)의 정수가 주어졌으며 2를 제외한 모든 수가 존재합니다.
이 때, N까지 모든 수가 사용되었다면 1을 반환하고, 그렇지 않다면 0을 반환해야 합니다.
접근 방법
Sort를 이용하여 정렬한 후 이전 Index와 현재 Index를 비교했을 때 1씩 차이가 난다면 연속된 수, 그렇지 않다면 연속되지 않은 수이기 때문에 이 성질을 이용하여 반복문을 수행합니다.
소스 코드
Python
def solution(A):
A.sort()
if A[0]!=1:return 0
for i in range(1,len(A)):
if A[i]-A[i-1]!=1:
return 0
return 1
print(solution([4,1,3,2]))
print(solution([4,1,3]))
Java8
#