01. 알고리즘 (Algorithm)

1. 알고리즘 (algorithm) 이란?

알고리즘 : 어떠한 문제를 해결하기 위해 정해 놓은 일련의 절차

특히 올바른 알고리즘이란 '어떠한 경우에도 실행 결과가 똑같이 나오는 것'을 말합니다. 만약 알고리즘의 실행 결과가 어떤 경우에는 맞고 어떤 경우에는 틀리면 올바른 알고리즘이라고 할 수 없습니다.

2. 알고리즘 예시

1) 세 정수의 최댓값을 구하는 알고리즘

def max3(a, b, c):
    maximum = a
    if b > maximum: maximum = b
    if c > maximum: maximum = c
    return maximum

print(f"max3(1,2,3) = {max3(1,2,3)}")
print(f"max3(1,3,2) = {max3(1,3,2)}")
print(f"max3(2,1,3) = {max3(2,1,3)}")
print(f"max3(2,3,1) = {max3(2,3,1)}")
print(f"max3(3,1,2) = {max3(3,1,2)}")
print(f"max3(3,2,1) = {max3(3,2,1)}")


>>> max3(1,2,3) = 3
    max3(1,3,2) = 3
    max3(2,1,3) = 3
    max3(2,3,1) = 3
    max3(3,1,2) = 3
    max3(3,2,1) = 3 
  • max3()함수에 어떤 값을 넣더라도 최댓값을 잘 구할 수 있습니다.

2) 연속하는 정수의 합을 구하는 알고리즘

def sum_atob(a, b):
    sum = 0
    for i in range(a, b+1):
        sum += i
    return sum

print(f"sum_atob(1,2) = {sum_atob(1,2)}")
print(f"sum_atob(1,3) = {sum_atob(1,3)}")
print(f"sum_atob(1,4) = {sum_atob(1,4)}")
print(f"sum_atob(1,5) = {sum_atob(1,5)}")


>>> sum_atob(1,2) = 3  
    sum_atob(1,3) = 6  
    sum_atob(1,4) = 10  
    sum_atob(1,5) = 15  
  • sum_atob()함수에 어떤 값을 넣더라도 연속하는 정수의 합을 잘 구할 수 있습니다.

3) 세 정수의 중앙값을 구하는 알고리즘

def med3(a, b, c):
    if a>=b:
        if b>=c:
            return b
        elif c>=a:
            return a
        else:
            return c
    elif a>=c:
        return a 
    else:
        if c>=b:
            return b
        else:
            return c
            
print(f"med3(1,2,3) = {med3(1,2,3)}")
print(f"med3(1,3,2) = {med3(1,3,2)}")
print(f"med3(2,1,3) = {med3(2,1,3)}")
print(f"med3(2,3,1) = {med3(2,3,1)}")
print(f"med3(3,1,2) = {med3(3,1,2)}")
print(f"med3(3,2,1) = {med3(3,2,1)}")
print(f"med3(1,1,2) = {med3(1,1,2)}")
print(f"med3(1,2,1) = {med3(1,2,1)}")
print(f"med3(2,1,1) = {med3(2,1,1)}")
print(f"med3(1,1,1) = {med3(1,1,1)}")  


>>> med3(1,2,3) = 2
    med3(1,3,2) = 2
    med3(2,1,3) = 2
    med3(2,3,1) = 2
    med3(3,1,2) = 2
    med3(3,2,1) = 2
    med3(1,1,2) = 1
    med3(1,2,1) = 1
    med3(2,1,1) = 1
    med3(1,1,1) = 1 
  • med3()함수에 어떤 값을 넣더라도 중앙값을 잘 구할 수 있습니다.

좋은 웹페이지 즐겨찾기