반응형
// 문제 요약
주어진 배열이 permutation 인지 확인하고
맞으면 1 아니면 0을 반환해라.
// 문제 풀이
permutation은 순열로
수학시간에 nPm 과 같이 쓰던 그걸 말한다.
여기서는 nPm일때 n=m인 경우를 말하고
1부터 A의 길이인 N 까지 모든 수를
한번씩만 사용해서 만든 순열을 의미한다.
비슷한 문제가 Lesson 3에서 한번 나온적이 있으므로
자세한 설명은 생략하도록 한다.
2021.04.17 - [Coding Test/Codility] - [ Codility 코딜리티 ] Lesson 3 PermMissingElem Python 파이썬 풀이
코드부터 보자.
# you can write to stdout for debugging purposes, e.g.
# print("this is a debug message")
import collections
def solution(A):
# write your code in Python 3.6
if len(A) == 1:
if A[0] == 1:
return 1
else:
return 0
counted = collections.Counter(A)
if len(counted) == len(A):
if sum(counted.values()) == max(A):
return 1
else:
return 0
else:
return 0
링크를 걸어둔 Lesson 3의 문제보다 간단하다.
그리고
if a == b:
return 1
else:
retrun 0
와 같은 구문은 간단하게
return a == b
로 바꿀 수 있으나 가독성을 위해
그대로 두었다.
여기서도 collections를 사용할 수 있다는 점을
몰랐으면 오래걸리거나
잘못된 풀이를 냈을 가능성이 있는 만큼
collections, sys, re 등의 사용을
익숙하게 만들어둬야만 한다.
반응형
'Coding Test > Codility' 카테고리의 다른 글
[ Codility 코딜리티 ] Lesson 5 GenomicRangeQuery Python 파이썬 풀이 (0) | 2021.04.17 |
---|---|
[ Codility 코딜리티 ] Lesson 5 CountDiv Python 파이썬 풀이 (0) | 2021.04.17 |
[ codility 코딜리티 ] Lesson 4 MissingInteger Python 파이썬 풀이 (0) | 2021.04.17 |
[ Codility 코딜리티 ] Lesson 4 MaxCounters Python 파이썬 풀이 (0) | 2021.04.17 |
[ Codility 코딜리티 ] Lesson 4 FrogRiverOne Python 파이썬 풀이 (0) | 2021.04.17 |
댓글