개발&코딩/Python
중간값 구하기 알고리즘 (Python_Algorithm, median)
우동이
2020. 12. 27. 12:01
중간값 구하기 알고리즘을 Python으로 구현해보자
중간값을 구하려면 비교할 수 있는 수가 최소 3가지는 되어야 확인이 가능하다.
그 전에 코드가 난잡해지는걸 방지하기 위해 모듈 하나를 만들어서 쓰도록 하자.
Module
#input.py
def inputvalue3():
print('세 정수의 중앙값.')
a = int(input('a의 값을 입력 >>'))
b = int(input('b의 값을 입력 >>'))
c = int(input('c의 값을 입력 >>'))
return a,b,c
inputvalue3()는 세 정수의 값을 입력받는 함수고
input.py로 따로 파일을 만들어 모듈화 하였다.
1. 첫번째 중간값 구하기
import time
from input import inputvalue3
start = time.time() # 시작 시간 저장 (start)
def median(a,b,c):
if (b>=a and c<=a) or (b<=a and c>=a):
return a
elif(a>b and c<b) or (a<b and c>b):
return b
return c
a,b,c = inputvalue3()
print('median : {}'.format(median(a,b,c)))
print("time :", time.time() - start) # 현재시간 - 시작시간 = 즉 실행시간
중간값을 구하는 결과는 잘 나온다 하지만
if, elif 두 개의 조건문 속에서 and or 중복 연산자를 통해
연산과정이 지나치게 길어지기 때문에
쓸데없는 판별횟수가 증가한다 그래서 아래 코드처럼
2. 두번째 중간값 구하기
import time
from input import inputvalue3
start = time.time() # 시작 시간 저장 (start)
def median(a,b,c):
if a>=b:
if b>=c:
return b
elif a<=c:
return a
else:
return c
elif a>c:
return a
elif b>c:
return c
else:
return b
a,b,c = inputvalue3()
print('median : {}'.format(median(a,b,c)))
print("time :", time.time() - start) # 현재시간 - 시작시간 = 즉 실행시간
한 번의 판별 과정으로 중간값 선별을 하는게 더 바람직하다.