1. 서론
엘카데미에 [모두의 알고리즘 with 파이썬] 강의를 시작하였다.
파이썬 알고리즘 기초를 예제 형식으로 실습할 수 있는 강의이다.
오늘 푼 알고리즘 문제를 정리하였다.
2. 문제
*1부터 n까지 연속한 숫자의 합을 구하는 알고리즘
변수 n을 입력받아 1부터 n까지 연속한 숫자의 합을 반환하는 함수 sum_n을 작성하라.
풀이
두 가지 방법이 있었다. 첫번째 풀이는 단순 반복 합을 하였고 두번째 풀이는 가우스 덧셈 공식을 이용하였다.
# 첫번째 풀이
def sum_n(a):
sum = 0
for i in range(1, a + 1):
sum = sum + i
a = a + 1
return sum
result = sum_n(10)
print(result)
result = sum_n(100)
print(result)
# 두번째 풀이
def sum_n(n):
return n * (n + 1) // 2
result = sum_n(10)
print(result)
result = sum_n(100)
print(result)
*최댓값을 구하는 알고리즘
17, 92, 18, 33, 58, 7, 33, 42 중에서 최댓값을 찾는 알고리즘을 정리한 것이다.
1. 리스트 변수 a을 입력받아 최댓값을 출력하는 함수 find_max을 작성하라.
(len()함수를 사용하여 리스트 안에 자료 개수를 n에 저장)
2. 함수 find_max에 리스트 v를 넣어 출력하라.
풀이
def find_max(a):
if not a:
return None
n = len(a)
max_value = a[0]
for i in range(1, n):
if a[i] > max_value:
max_value = a[i]
return max_value
v = [17, 92, 18, 33, 58, 7, 33, 42]
result = find_max(v)
print(result)
'기타 > 엘카데미' 카테고리의 다른 글
[엘카데미 챌린지] 16일차 파이썬 알고리즘 (3) (0) | 2023.08.02 |
---|---|
[엘카데미 챌린지] 15일차 파이썬 알고리즘 (2) (0) | 2023.07.31 |
[엘카데미 챌린지] 13일차 생활코딩 자바스크립트 (3) (0) | 2023.07.30 |
[엘카데미 챌린지] 12일차 생활코딩 자바스크립트 (2) (0) | 2023.07.28 |
[엘카데미 챌린지] 11일차 생활코딩 자바스크립트 (1) (0) | 2023.07.27 |