객체 지향 프로그래밍/Python

[파이썬 기초] - List, Set (Python)

ghtis1798 2020. 12. 19. 16:39

파이썬 기초 자료구조와 알고리즘

파이썬 기초 - 자료구조 & 알고리즘.

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}) # 집합에는 순서가 없음