길이가 n인 배열에 1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는지를 확인하려고 합니다.
1부터 n까지 숫자가 중복 없이 한 번씩 들어 있는 경우 true를, 아닌 경우 false를 반환하도록 함수 solution을 완성해주세요.
arr | result |
---|---|
[4, 1, 3, 2] | true |
[4, 1, 3] | false |
(인덱스 + 1) == 현재값
을 확인한다.arr
을 정렬하여 enumerate()
을 통해 반복한다.start
옵션을 통해 시작 번호를 1로 지정할 수 있다.idx
와 num
을 비교한다.idx != num
인 경우 False 반환# 코드
def solution(arr):
answer = True
# arr을 정렬하고 인덱스와 값이 같은지 확인한다.
# enumerate의 start 옵션으로 시작 인덱스의 값을 지정할 수 있다.
for idx, num in enumerate(sorted(arr), start = 1):
if idx != num:
answer = False
break
return answer