본문 바로가기
Coding Test/Codility

[ Codility 코딜리티 ] Lesson 4 PermCheck Python 파이썬

by SteadyForDeep 2021. 4. 17.
반응형

 

// 문제 요약

 

주어진 배열이 permutation 인지 확인하고

맞으면 1 아니면 0을 반환해라.

 

// 문제 풀이

 

permutation은 순열로

수학시간에 nPm 과 같이 쓰던 그걸 말한다.

여기서는 nPm일때 n=m인 경우를 말하고

1부터 A의 길이인 N 까지 모든 수를

한번씩만 사용해서 만든 순열을 의미한다.

 

비슷한 문제가 Lesson 3에서 한번 나온적이 있으므로

자세한 설명은 생략하도록 한다.

2021.04.17 - [Coding Test/Codility] - [ Codility 코딜리티 ] Lesson 3 PermMissingElem Python 파이썬 풀이

 

[ Codility 코딜리티 ] Lesson 3 PermMissingElem Python 파이썬 풀이

// 문제 요약 N개의 서로 다른 정수들로 구성된 배열 A가 주어진다. 배열에 들어있는 정수들은 [1, (N+1)]의 범위를 가지며 정확히 하나의 원소가 사라져있다. 사라진 원소를 찾는 함수를 구현해라.

davi06000.tistory.com

 

 

코드부터 보자.

# 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 등의 사용을

익숙하게 만들어둬야만 한다.

 

 

반응형

댓글