본문 바로가기
Algorithm

[파이썬으로 알고리즘배우기-2] 최소값 구하기

by 노마드공학자 2021. 2. 7.

※ 이전글

[파이썬으로 알고리즘배우기-1] 최대값 구하기 https://limitsinx.tistory.com/82

 

※이 전글에서 정리한 코드/개념은 재설명하지 않으므로, 참고부탁드립니다

※해당 글은 PC에서 보기에 최적화 되어있습니다.

 


 

 

"a,b,c 3개의 숫자들중 최소값을 찾는 알고리즘을 구현해보기"

 

 


① 각각의 모든 케이스에 대해 비교해보기

 

a>c 이고, b>c이면 최소값은 c

b>a이고, c>a이면 최소값은 a

c>b이고, a>b이면 최소값은 a

 

[알고리즘 설명]

이전글인, 최대값구하기에서도 다루었다시피

가능한 모든 경우의수를 비교하여 최소값을 찾아내는 코드입니다.

 

하지만, 이렇게 하나하나 모든 경우의수에 대해 if문을 건다면, 만약 숫자 5개중 최소값을 찾는 코드를 짜야한다고하면

조건문의 갯수가 20개가 필요합니다.

 

따라서 근본적으로 다른 방법의 알고리즘이 필요한데요, 아래에는 조건문 단 2개만을 사용하여 최소값을 구해보겠습니다.

 

 

② 조건문을 2개만 사용하여 풀어보기

 

 

[알고리즘 설명]

엄청나게 단순해진 것을 확인하실 수 있는데요, 이렇게 구현하는 경우 숫자5개중 최소값을 찾는다면 조건문은 단 5개가 필요합니다.

 

즉, N개의 숫자중 최소값을 찾는데에 N개의 조건문만 있으면 되지만,

 

1번방식으로 푼다면 N factorial 2만큼의 조건문 갯수가 필요합니다.(왜그런지는 한번 생각해보시면 도움될것같습니다.)

 


Summary

 

 

이런게 바로 알고리즘의 힘입니다.

 

지금은 이런 간단한 예제로, 20줄 코드짤꺼 5줄로 짤정도지만,

 

실전 프로그래머가 되시거나 개발자가 되신다면 수천/수만 코드로 짤것도 몇십줄만으로 처리해버릴 수 있게되는것이죠

 

이게 바로 프로그래머의 능력의 차이입니다.

 

똑같은 내용의 코드를 구현한다면, 최적화되고 짧을수록 메모리나 CPU에도 유리하게 코드를 짤 수 있는것입니다.

 

 

댓글