알고리즘/책 예제
[모두의 알고리즘 with 파이썬] 01_알고리즘 기초
Orange57
2021. 1. 26. 21:28
728x90
반응형
SMALL
1. 1부터 n까지 연속한 숫자의 합을 구하는 알고리즘
- 입력: n
- 출력: 1부터 n까지의 숫자를 더한 값
방법 1)
def sum_n(n):
result = 0
for i in range(n+1):
result+=i
return result
print(sum_n(10))
print(sum_n(100))
===================================
결과 :
55
5050
방법 2)
def sum_n(n):
result = (n*(n+1))/2
return int(result)
print(sum_n(10))
print(sum_n(100))
===================================
결과 :
55
5050
2. 최댓값을 구하는 알고리즘
- 입력: 숫자가 n개 들어 있는 리스트
- 출력: 숫자 n개 중 최댓값
def find_max(a):
max = a[0]
for i in a:
if i > max:
max = i
else:
continue
return max
v = [17, 92, 18, 33, 58, 7, 33, 42]
print(find_max(v))
======================================
결과 :
92
- 입력: 숫자가 n개 들어 있는 리스트
- 출력: 숫자 n개 중에서 최댓값이 있는 위치(0부터 n-1까지의 값)
def find_max_idx(a):
max = a[0]
for i in range(len(a)):
if a[i] > max:
max = a[i]
max_idx = i
else:
continue
return max_idx
v = [17, 92, 18, 33, 58, 7, 33, 42]
print(find_max_idx(v))
=====================================
결과 :
1
3. 동명이인을 찾는 알고리즘
- 입력: 이름이 n개 들어 있는 리스트
- 출력: 이름 n개 중 반복되는 이름의 집합
def find_same_name(a):
result = set() # 빈 집합 생성
for i in range(len(a)):
name = a[i]
for j in range(i+1,len(a)):
if name == a[j]:
result.add(a[j])
else:
continue
return result
name = ["Tom", "Jerry", "Mike", "Tom"] # 대소문자 유의: 파이썬은 대소문자를 구분함
print(find_same_name(name))
name2 = ["Tom", "Jerry", "Mike", "Tom", "Mike"]
print(find_same_name(name2))
=========================================================
결과 :
{'Tom'}
{'Tom', 'Mike'}
Yearang-Lee/Algorithm
Contribute to Yearang-Lee/Algorithm development by creating an account on GitHub.
github.com
문제 출처 : 모두의 알고리즘 with 파이썬, 엘리스 아카데미
728x90
반응형
LIST