입력 >> 알고리즘 >>출력
알고리즘은 어떤 문제를 풀기 위한 절차나 방법
알고리즘은 주어진 '입력'을 '출력'으로 만드는 과정
알고리즘의 각 단계는 구체적이고 명료해야 함
한 가지 문제를 푸는 여러 가지 방법, 즉 여러 가지 알고리즘 중에 상황에 맞는 적당한 알고리즘을 골라 쓰려면 어떤 알고리즘이 어떤 특징을 지니고 있으며 얼마나 계산이 빠르고 편한지 등을 알아야 한다.
이처럼 알고리즘의 성능이나 특징을 분석하는 것을 '알고리즘 분석' 이라고 한다.
# 1부터 n까지 연속한 숫자의 합을 구하는 알고리즘 1
# 입력: n
# 출력: 1부터 n까지의 숫자를 더한 값
def sum_n(n):
s = 0 # 합을 계산할 변수
for i in range(1, n+1): # 1부터 n까지 반복(n + 1은 제외)
s = s + i
return s
print(sum_n(10)) # 실행결과: 50
print(sum_n(100) # 실행결과: 5050
# 1부터 n까지 연속한 숫자의 합을 구하는 알고리즘 2
# 입력: n
# 출력: 1부터 n까지의 숫자를 더한 값
def sum_n(n):
return (n * (n + 1)) // 2 #슬래시 두 개(//)는 정수 나눗셈
print(sum_n(10)) # 실행결과: 50
print(sum_n(100) # 실행결과: 5050
- 주어진 수를 더해라
ex) [ 4, 6, 1, 10, 4,...., 11 ]- 수의 개수는 n개
두 번째 알고리즘으로 풀 수 없다.