"a,b,c 3개의 숫자들중 최대값을 찾는 알고리즘을 구현해보기"
① 각각의 모든 케이스에 대해 비교해보기
a>b를 비교하고 True라면, a>c를 비교해서 True라면 a가 최대값
b>a가 True라면, b>c를 비교해서 True이면 b가 최대값
c>a가 True라면, c>b를 비교해서 True이면 c가 최대값
[알고리즘 설명]
초등학생들도 생각할 수 있을법한 알고리즘으로 구현해보았습니다.
3개의 숫자 모두 각각을 비교해보면 최대값이 무엇인지 알 수 있는 코드입니다.
따라서 총 조건문의 갯수는 (3P(factorial)2) 6개입니다.
② 조건문을 2개만 사용하여 풀어보기
위의 예제에서는 조건문을 총 6개 사용하였는데요, 조건문의 갯수를 3분의1개로 줄인 2개로 구현해보겠습니다.
코드가 아주 간단해졌습니다.
maximum이라는 변수에 a를 저장하고,
b>maximum인경우에만, maximum=b로 변경합니다.
따라서, 첫번째 if문을 통과하는 maximum이라는 변수의 값은 a와b중 큰값입니다.
그다음, c>maximum이라는 조건문을 통해 a와b중 큰값과 c를 비교하여 c가 큰경우에는 c를 maximum으로, 아닌경우에는 첫번째 조건문에서 통과했던 최대값을 maximum으로 그대로 가지고 있습니다.
def max(a,b,c) 라는 함수를 만들어, 언제든 호출할 수 있도록 구현할수도 있습니다.
'Algorithm' 카테고리의 다른 글
[파이썬으로 알고리즘배우기-4] 1~N 숫자더하기 (0) | 2021.02.09 |
---|---|
[파이썬으로 알고리즘배우기-3] 중간값 구하기 (0) | 2021.02.08 |
[파이썬으로 알고리즘배우기-2] 최소값 구하기 (0) | 2021.02.07 |
[파이썬으로 알고리즘배우기] 연재에 앞서.. (0) | 2021.02.05 |
댓글