-
[codility] Counting Elements - PermCheckAlgorithm 2021. 9. 23. 20:53
문제
A non-empty array A consisting of N integers is given.
A permutation is a sequence containing each element from 1 to N once, and only once.
For example, array A such that:
A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2
is a permutation, but array A such that:
A[0] = 4 A[1] = 1 A[2] = 3
is not a permutation, because value 2 is missing.
The goal is to check whether array A is a permutation.
Write a function:
public func solution(_ A : inout [Int]) -> Int
that, given an array A, returns 1 if array A is a permutation and 0 if it is not.
For example, given array A such that:
A[0] = 4 A[1] = 1 A[2] = 3 A[3] = 2
the function should return 1.
Given array A such that:
A[0] = 4 A[1] = 1 A[2] = 3
the function should return 0.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [1..100,000];
- each element of array A is an integer within the range [1..1,000,000,000].
Copyright 2009–2021 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.
문제 해설
A배열이 순열인지 아닌지 체크
순열이면 1 아니면 0 리턴
구현 해설
A 배열이 [3,1,2,4] 인경우에는 1 리턴
[1,2,4] 인 경우에는 순열이 아니기 때문에 0 리턴
import Foundation import Glibc // you can write to stdout for debugging purposes, e.g. // print("this is a debug message") public func solution(_ A : inout [Int]) -> Int { // write your code in Swift 4.2.1 (Linux) A.sort() for (index, _) in A.enumerated() { if index+1 != A[index] { return 0 } } return 1 }
'Algorithm' 카테고리의 다른 글
[codility] Counting Elements - MissingInteger (0) 2021.09.24 [codility] Counting Elements - MaxCounters (0) 2021.09.23 [codility] Counting Elements - FrogRiverOne (0) 2021.09.23 [codility] Time Complexity - TapeEquilibrium (0) 2021.09.23 [codility] Time Complexity- PermMissingElem (0) 2021.09.22