Algorithm(알고리즘)/백준

04. 첫번째로 중복되는 항목 찾기 1

고로케 2021. 5. 22.
반응형

04. 첫번째로 중복되는 항목 찾기 1

 

처음으로 중복되는 순간 숫자를 리턴해준다.

 

# 시간 복잡도 O(n)

 

1) 리스트 list 이용

def find_same_number(some_list):
    # 이미 나온 요소를 저장시켜줄 리스트
    elements_seen_so_far = []

    for element in some_list:
        # 이미 나온 요소인지 확인하고 맞으면 요소를 리턴한다
        if element in elements_seen_so_far:
            return element

        # 해당 요소를 리스트에 저장시킨다
        elements_seen_so_far.append(element)

# 테스트
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 

 

2) 사전dictionary 이용

def find_same_number(some_list):
    # 이미 나온 요소를 저장시켜줄 사전
    elements_seen_so_far = {}

    for element in some_list:
        # 이미 나온 요소인지 확인하고 맞으면 요소를 리턴한다
        if element in elements_seen_so_far:
            return element

        # 해당 요소를 사전에 저장시킨다
        elements_seen_so_far[element] = 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 

 

 

 

 

 

 

반응형

댓글