파이썬 기초 자료구조와 알고리즘
1. 1부터 n까지의 연속한 숫자의 합을 구하는 알고리즘
방법 1.
def sum_n(n):
sum = 0
for i in range(1, n+1):
sum = sum + i
return sum
print(sum_n(10))
방법 2.
def sum_n(n):
return n*(n+1)/2
print(sum_n(10))
2. 최대값 구하는 알고리즘 : List 자료구조 - len(a), append(x), insert(i,x), pop(i), clear(), x in a
def find_max(list_):
max = -2147000000
for data in list_:
if max < data:
max = data
return max
list_ = [10, 5, 8, 11, 25, 28]
print(find_max(v))
print(max(x))
3. 최대값의 인덱스를 구하는 알고리즘
def find_max(list_):
max = -2147000000
max_idx = 0
for i in range(1, len(list_)):
if max < list_[i]:
max = list_[i]
max_idx = i
return max_idx
list_ = [10, 5, 8, 11, 25, 28]
print(find_max(list_))
4. 동명이인 찾기 - Set 자료구조 : len(s), add(x), discard(x), clear(), x in s
def find_same(list_):
res = set()
for i in range(len(list_)):
for j in range(i+1, len(list_)):
if list_[i] == list_[j]:
res.add(list_[i])
break
return res
name = ["Tony", "Mike", "Tony", "Stark"]
print(find_same_name(name))
name2 = ["Tony", "Stark", "Tony", "Jack", "Stark"]
print(find_same_name(name2))
5. Set
set_ = set() # 빈 집합을 만듭니다.
set_.add(10) # 집합에 값을 추가합니다.
set_.add(20)
set_.add(20) # 집합에 중복된 값을 추가
print(set_)
print(len(set_)) # 집합 s에는 자료가 두 개 존재
print({50,20} == {20,50}) # 집합에는 순서가 없음
'객체 지향 프로그래밍 > Python' 카테고리의 다른 글
변경 불가능한 자료형 주의하기 (0) | 2021.03.10 |
---|---|
파이썬은 정말 인터프리터 언어일까? (1) | 2021.03.10 |
파이썬 변수는 언제 소멸될까? (2) | 2021.03.10 |
파이썬 - 입/출력, 자료구조 빠르게 정리하기 (9) | 2021.01.07 |
[재귀] Recursion - Python (0) | 2020.12.20 |