[codility] perm missing elem (python)

728x90
반응형

한 가지 없는 원소를 찾는 것 (1부터 시작해서)

빈배열일 경우, 마지막이나 첫 원소가 없을 경우, 홀수개의 원소, 짝수개의 원소일 경우를 모두 체크해주는 경우의 수를 공부할 수 있었다

def solution(A):

    if not A: return 1 # 빈 배열은 당연 1을 리턴
    
    A.sort() # 정렬해서 중간에 없는 수를 찾아보자 
    num=1
    for i,e in enumerate(A):
        if num!=e: return num
        else: num+=1
        
    return num # 마지막 원소가 없는 경우

 

다른 사람 풀이인데 이전에 bitwise로 계산하는 문제같다

def solution(A):
    length = len(A)
    xor_sum = 0
    for index in range(0, length):
        xor_sum = xor_sum ^ A[index] ^ (index + 1)
    return xor_sum^(length + 1)

풀이 출처

codesays.com/2014/solution-to-perm-missing-elem-by-codility/

 

Solution to Perm-Missing-Elem by codility – Code Says

Question: http://codility.com/demo/take-sample-test/perm_missing_elem Question Name: PermMissingElem or PermMissingElement The main challenge of this question is the XOR operations: X^X=0, and 0^X=X. Logically, the addition and subtraction operations also

codesays.com

 

728x90
반응형
TAGS.

Comments