Algorithm(알고리즘)/백준
04. 첫번째로 중복되는 항목 찾기 1
반응형
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
반응형
'Algorithm(알고리즘) > 백준' 카테고리의 다른 글
06. 주식 최대 수익 함수 (0) | 2021.05.22 |
---|---|
05. 투자의 귀재, 합 구간이 가장 큰 함수 (0) | 2021.05.22 |
03. 빠르게 산 오르기(약수터문제) (0) | 2021.05.16 |
02. 거듭 제곱 계산 함수 (x ** y) (0) | 2021.05.16 |
01. 최대 합 구간을 구하는 함수(Brute Force) (0) | 2021.05.16 |
댓글