본문 바로가기
Coding Test/Codility

[ Codility 코딜리티 ] # Lesson 2 OddOccurrencesInArray python 풀이

by SteadyForDeep 2021. 4. 11.
반응형

// 문제 요약

 

비어 있지 않은 리스트 A 가 있는데

 

홀수개의 정수 N 들을 담고있다.

 

이 N중에서 짝을 이룰 수 없는 정수가 하나 존재한다.

 

짝을 이룰 수 없는 정수를 출력해라.

 

예를 들어

 

A = [ 9, 3, 9, 3, 9, 7, 9 ] 인경우 7이 반환되어야 한다.

 

 

//풀이

 

처음에는 two-pointer 같은 방법들로

 

짝을 이룰경우 소거하는 방식을 생각했으나

 

그냥 개수를 세어본 후 홀수개의 원소를 반환하면 되는 방법이 가장 간단했다.

 

물론 1인 경우 반환을 생각해서 한번 틀렸고

 

이것을 홀수로 고치니까 풀렸다.

 

이런 사소한 부분들을 생각해내는 훈련을 하는 것이

 

코딩테스트 문제풀이의 가장 좋은점이 아닐까 한다.

 

개수를 세는 방법을 쓰기 위해서는

 

collections 안에 있는 Counter 를 이용해서 풀어볼 수 있다.

 

collections와 같은 패키지를 사용하는 것은

 

일단 내가 알기로는 절대 반칙이 아니며 오히려 특정 코테플랫폼이 제공하는

 

패키지를 미리 숙지하고 십분 활용하는 것이 가장 좋은 문제 풀이가 되겠다.

 

import collections

def solution(A):
    counted = collections.Counter(A)
    for key, val in counted.items():
        if val % 2 == 1:
            return key

 

 

 

 

문제풀이의 핵심인 Counter를 좀 알아보면

 

 

이렇게 { 원소 : 개수 } 로 맵핑되어있는 딕셔너리가 얻어진다.

 

따라서 개수가 홀수일때 원소를 반환하는 방식으로 코드를 짰다.

 

반응형

댓글