[Codility] OddOccurrencesInArray

snusun·2021년 11월 25일
0

Codility

목록 보기
1/13

OddOccurrencesInArray

1차 시도

  • quick sort 후 같은 숫자를 세서 홀수면 return 하는 방식을 사용했는데

이런 결과가..
먼저 n=1일 때 고려를 해주지 않음

2차 시도

python sorted() method는 시간 복잡도가 O(NlogN) 이라고 한다.
그것도 모르고 quick sort 구현했네..

def solution(A):
    # write your code in Python 3.6
    A = sorted(A)
    #print(A)

    if len(A)==1:
        return A[0]

    n=1
    for i in range(1, len(A)):
        if A[i-1] == A[i]:
            n+=1
        else:
            if n%2 == 1:
                return A[i-1]
            n=1


나한테 왜 이러시는 거세요
performance는 다 맞는데 correctness가 40%

3차 시도

홀수

def solution(A):
    # write your code in Python 3.6 
    A = sorted(A)
    #print(A)

    if len(A)==1:
        return A[0]

    for i in range(1, len(A), 2):
        if A[i-1] != A[i]:
            return A[i-1]

결과 고대로임

4차 시도

어차피 두개씩 짝지어서 볼거니까 2개 간격으로 확인하면 된다
처음과 마지막 비교만 신경써서 해주기
드디어 다 통과

def solution(A):
    if len(A) == 1:
        return A[0]

    A = sorted(A)
    print(A)
    for i in range(0, len(A), 2):
        if i+1 == len(A):
            return A[i]
        if A[i] != A[i+1]:
            return A[i]
profile
대학생 근데 이제 컴공을 곁들인

0개의 댓글