[Algorithm] 효율적으로 중복되는 숫자 찾기

less than 1 minute read

ALGORITHM

  • 알고리즘 정리(25)

문제

  • (N + 1)의 크기인 리스트에, 1부터 N까지의 임의의 자연수가 요소로 할당되어 있어, 중복되는 숫자가 최소 1개가 존재
  • 중복되는 어느 숫자 ‘하나’를 가장 효율적으로 찾아 리턴하는 함수를 구현하시오.
def find_same_number(some_list):
    ele_dict = {}

    for ele in some_list:
        if ele in ele_dict:
            return ele

        ele_dict[ele] = True

print(find_same_number([1, 4, 3, 5, 3, 2]))
print(find_same_number([4, 1, 5, 2, 3, 5]))
print(find_same_number([5, 2, 3, 4, 1, 6, 7, 8, 9, 3]))
3
5
3